這個問題我認爲對於S/O來說足夠的技術了,而且可能也是面向編程的Android。我對如何在Android(或適當的Java或Linux)中處理文件很感興趣,因爲我用我的新智能手機做了一些事情,我很想知道它是如何發生的。爲什麼我可以在寫入Linux時成功移動文件?
我正在通過藍牙將筆記本電腦中的文件傳輸到我的Android手機。我在文件瀏覽器中看到了新文件,假設它已完全傳輸,並將其從/sdcard/bluetooth
移至/sdcard/torrents
。我這樣做後,我注意到它實際上仍在轉移。令我驚訝的是,它成功完成,通過手機中的通知圖標進行確認,並通過雙方的手動MD5檢查。在大多數系統中,文件移動會導致崩潰。
成功轉移的原因是什麼?我知道,一般來說,文件路徑與文件系統上的文件位置(在本例中是SD卡)是分開的。我想藍牙應用程序已經打開了文件的句柄,當我做文件移動時,一個'打開的文件'表被更新爲一個新的路徑。這個功能在任何Linux系統中通常都是如此嗎?我可以在正在編寫的文件上執行mv
,並希望副本(在其新位置)是正確的嗎?
兩個不同的文件系統之間爲什麼會移動文件導致崩潰開始用?這些文件本身就是二進制數據的一部分;文件系統僅表示如何存儲,表示和刪除這些數據。 – Makoto 2012-08-05 18:08:27
移動一個文件本身並不會導致崩潰,但在文件上使用'mv'時,它仍然被寫入_可能會(因爲通常寫入文件的系統應該能夠假設該文件保持在從寫入開始到寫入結束的相同位置)。我想了解後一種情況是否適用於所有Linux(或Java或Android)系統。任何人都可以解釋爲什麼這個成功的額外偵察員/布朗尼點! – halfer 2012-08-05 18:11:47