Q
差異/刪除和移動
12
A
回答
8
File.Move方法可用於將文件從一個路徑移動到另一個路徑。此方法適用於磁盤卷,如果源和目標相同,則不會引發異常。
您不能使用Move方法覆蓋現有文件。如果您嘗試通過將相同名稱的文件移動到該目錄來替換文件,則會出現IOException。 爲了克服這個問題,你可以使用複製和刪除方法的組合
0
我不認爲有任何區別權限明智,但我個人更喜歡使用File.Move(),因爲那樣你有兩個動作發生在同一個「交易」中。換句話說,如果移動中的某些內容失敗,則整個操作失敗。但是,如果您分兩步分解(複製+刪除),如果複製工作並刪除失敗,則必須手動反轉「交易」(刪除副本)。
0
權限文件傳輸在兩點檢查:源和目標。因此,如果您沒有讀取源文件夾中的權限,或者您沒有寫入目標中的權限,則這些方法都會拋出AccessDeniedException
異常。換句話說,權限檢查對於正在使用的方法是不可知的。
3
明智的性能,如果在一個和相同的文件系統,移動文件是(以簡化術語)只是調整文件系統本身(可能調節在red/black-tree一些節點)的一些內部寄存器,而無需實際移動一些東西。
想象一下,你有180MiB移動,你可以以大約30MiB/s的速度寫入磁盤。然後複製/刪除,完成大約需要6秒。通過一個簡單的移動[相同的文件系統],它變得如此之快,你甚至可能沒有意識到它。我曾經寫過一些事務性的文件系統助手,它們會移動或複製多個文件,全部或沒有;爲了儘可能快地完成提交,我首先將所有東西移動/複製到一個臨時的子文件夾中,然後最終提交會將現有數據移動到另一個文件夾(以啓用回滾),並將新數據移動到目標)。
相關問題
- 1. 刪除舊的遷移差異
- 2. 差異移動
- 3. MySql移動差異?
- 4. 差異刪除(路徑)和文件#刪除()
- 5. 刪除和移動文件
- 6. 移動和刪除行
- 7. Mercurial移動跟着差異
- 8. 防止刪除表的Doctrine遷移差異
- 9. 在從Axis2遷移到CXF時刪除WSDL差異
- 10. 與刪除動態移除
- 11. SQL根據日期差異刪除行
- 12. 不使用lodash差異刪除重複
- 13. 刪除組中最大的差異
- 14. 在MySQL中移動和刪除行
- 15. Logrotate - 壓縮,移動和刪除
- 16. 移動Safari $(窗口).height()URL欄差異
- 17. 差異[]和新的浮動* []
- 18. 刪除差距
- 19. 刪除差距
- 20. 修復和刪除Git Rebase中的提交之間的差異
- 21. 刪除鼠標移動
- 22. 刪除類如果移動
- 23. 如何刪除Firefox移動
- 24. QPainterPath - 移動/刪除元素
- 25. 刪除遷移導致異常
- 26. 移動和桌面應用程序測試的差異
- 27. 網站之間的差異Facebook登錄和移動Web選項
- 28. Javascript/jQuery移動設備和PC之間的差異
- 29. 提供桌面和移動平臺之間的差異
- 30. flake8,只在差異和排除
好的,謝謝。好點。但我想知道進行這些操作所需的許可。 說複製我需要'讀'權限和刪除我需要'修改'文件權限..等等?移動??? – Lamps
移動是複製和刪除的組合,所以如果你有這個操作的權限,那麼不需要額外的移動許可 –
好的,謝謝。我知道了。 我認爲對於刪除和移動操作,我們需要修改文件的權限。 – Lamps