2014-04-13 68 views

回答

0

因爲當前正在使用的文件。您不能更改文件的名稱。 當文件被打開時,它的進程被創建。您不能在運行時更改進程的名稱。 希望問題完全回答

0

它產生的設計決策是不太複雜的行爲。當文件F由進程A打開時,您必須假設AF的名稱一起使用,並與有用的信息(例如,它顯示給用戶,圍繞其傳遞到其他進程,並將其存儲在配置中,MRU列表,不管,等等。因此,如果過程B改名F,過程A將現在無效信息工作。因此,禁止這種操作通常更安全。

3

這個問題是基於一個錯誤的前提,你當然可以可以重命名在Windows上使用的通用文件系統上使用的文件。有一個進程可以做的很少,以防止這種情況發生,只是改變文件上的ACL來拒絕訪問。這是非常罕見的。

鎖定文件保護文件數據,而不是文件的元數據。

此功能有許多用途,最引人注目的是ReplaceFile() WINAPI函數依賴於它。即使另一個進程被鎖定,程序可以保存文件的方式也是如此。

你只有一件事不能做的是重命名文件將其移動到不同的驅動器。因爲這需要更多的工作,然後簡單地更改或移動文件的目錄條目。它還需要將文件數據從一個驅動器複製到另一個驅動器。當文件數據被鎖定時,這當然會失敗。

相關問題