我只是爲什麼我不能重命名打開的文件或被其他程序使用的文件? 那是什麼目的?爲什麼我不能重命名正在使用的文件
0
A
回答
0
因爲當前正在使用的文件。您不能更改文件的名稱。 當文件被打開時,它的進程被創建。您不能在運行時更改進程的名稱。 希望問題完全回答
0
它產生的設計決策是不太複雜的行爲。當文件F
由進程A
打開時,您必須假設A
與F
的名稱一起使用,並與有用的信息(例如,它顯示給用戶,圍繞其傳遞到其他進程,並將其存儲在配置中,MRU列表,不管,等等。因此,如果過程B
改名F
,過程A
將現在無效信息工作。因此,禁止這種操作通常更安全。
3
這個問題是基於一個錯誤的前提,你當然可以可以重命名在Windows上使用的通用文件系統上使用的文件。有一個進程可以做的很少,以防止這種情況發生,只是改變文件上的ACL來拒絕訪問。這是非常罕見的。
鎖定文件保護文件數據,而不是文件的元數據。
此功能有許多用途,最引人注目的是ReplaceFile() WINAPI函數依賴於它。即使另一個進程被鎖定,程序可以保存文件的方式也是如此。
你只有一件事不能做的是重命名文件將其移動到不同的驅動器。因爲這需要更多的工作,然後簡單地更改或移動文件的目錄條目。它還需要將文件數據從一個驅動器複製到另一個驅動器。當文件數據被鎖定時,這當然會失敗。
相關問題
- 1. 爲什麼我不能重命名我的文件的目錄?
- 2. 爲什麼我不能重命名列?
- 3. 爲什麼我的文件不能重命名?
- 4. 爲什麼不重命名文件? Powershell
- 5. 爲什麼不能重命名文件?在vb.Net
- 6. 爲什麼我既不能刪除也不能重命名文件?
- 7. 爲什麼log4j重命名文件名?
- 8. 爲什麼我的重命名文件不工作?
- 9. 重命名後爲什麼我不能訪問熊貓列?
- 10. 爲什麼php重命名()會破壞我的文件?
- 11. 爲什麼我能夠在運行時重命名Windows Service可執行文件?
- 12. 爲什麼我沒有注意到文件從FileSystemWatcher重命名
- 13. 爲什麼重命名文件有時會重構類名,有時不重寫?
- 14. Xcode 4.爲什麼我的重命名項目找不到它的Info.plist文件?
- 15. 爲什麼不能在html中重命名<header>標籤?
- 16. 什麼是重命名你的xaml文件的正確方法?
- 17. 爲什麼我不能在命名空間上使用XML數據的XPath?
- 18. 爲什麼我不得不使用完整的命名空間?
- 19. 爲什麼我不能在php中更改輸入文件名?
- 20. 爲什麼我不能在if語句下獲得文件名?
- 21. 爲什麼我不能使用參數字符串來命名我的按鈕?
- 22. 爲什麼我不能重用「不應用」不重複的方法簽名
- 23. 如果我在XCODE中重命名文件會發生什麼?
- 24. 爲什麼文件被命名爲catalina.out?
- 25. 爲什麼我不能在PHP中使用chmod()上傳文件?
- 26. 爲什麼我的S_ISDIR和S_ISREG不能返回正確的目錄/文件名?
- 27. 爲什麼文件名已被部分重命名?
- 28. 爲什麼一個文件重命名失敗在Java
- 29. 爲什麼Eclipse只提示「在文件中重命名」?
- 30. 爲什麼我不能得到文件和目錄的名稱?
如果其他程序在重命名後保存了該文件,您認爲會發生什麼? – Seph
它將使用新名稱保存相同文件中的更改! –