Saya menulis aplikasi yang berfungsi dengan gambar satelit, dan bos saya meminta saya untuk melihat beberapa aplikasi komersial, dan melihat bagaimana mereka berperilaku. Saya menemukan perilaku aneh dan kemudian ketika saya mencari, saya menemukannya di aplikasi standar lainnya juga.
Program-program ini pertama menulis ke folder temp, dan kemudian menyalinnya ke tujuan yang dituju.
Contoh: 7zip mengekstrak dulu ke folder temp, dan kemudian menyalin data yang diekstraksi ke lokasi yang Anda minta untuk mengekstrak datanya.
Saya melihat beberapa masalah dengan pendekatan ini:
Folder temp mungkin tidak memiliki cukup ruang, sementara lokasi yang dituju mungkin memiliki banyak ruang.
Jika ini adalah file besar, ini bisa memakan waktu yang tidak dapat diabaikan untuk operasi penyalinan.
Saya banyak memikirkannya, tetapi saya tidak dapat melihat satu poin positif untuk melakukan ini. Apakah saya kehilangan sesuatu, atau apakah ada manfaat nyata untuk melakukan ini?
sumber
Jawaban:
Beberapa alasan yang dapat saya pikirkan:
TL; DR - sebagian besar bermuara pada atomicity, yaitu, Anda ingin membuatnya sehingga (pada lokasi akhir) file tersebut selesai atau tidak ada sama sekali pada waktu tertentu.
sumber
Ini tampaknya menjadi masalah di Windows, lebih khusus terkait dengan bagaimana drag-drop dikelola.
Pengembang klien WINSCP telah mengembangkan ekstensi shell mereka sendiri, yang mengesampingkan perilaku drag-drop ini dan memungkinkan menjatuhkan file ke folder yang tepat dengan segera. Mereka menjelaskan trik dalam dokumentasi mereka dan, yang lebih menarik, apa masalahnya dan bagaimana mereka memecahkannya.
Inilah bagian yang menarik:
Juga, khusus untuk 7Zip: pengguna ray023 menjawab pertanyaan ini di T&U SuperUser Stack: https://superuser.com/a/422463
Pada dasarnya, jika alih-alih menyeret file Anda, Anda menggunakan metode "ekstrak di sini" yang tersedia di bith 7-ZIP dan Winrar, file tersebut langsung diekstraksi ke direktori yang benar.
sumber
Jika Anda harus melakukan segala jenis pemrosesan data ke file (decode / convert / etc ..), maka lebih baik menggunakan file sementara dan ketika selesai, dan hanya jika selesai, transfer hasilnya ke tujuan akhir.
Manfaat:
Saya tidak melihat manfaat nyata dari menulis langsung ke tujuan saat memproses data.
sumber