我能夠在Windows資源管理器中手動創建文件夾,完整路徑長度正好是247個字符(不包括尾部斜線)。據我所知,248是最大的文件夾名稱路徑限制,包括尾部斜槓。爲什麼Windows資源管理器允許創建文件夾太長,無法被Directory.Move移動 - 生成PathTooLongException?
然後我嘗試使用Directory.Move
方法到這個文件夾重命名爲一個較短的路徑:
string folder247CharsLong = @"C:\first level folder path - will form 247 chars\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\ccccccccccccccccccccccccccccccccccccc";
string folder215CharsLong = @"C:\first level folder path - will form 247 chars\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\SHORT";
Directory.Move(folder247CharsLong, folder215CharsLong);
這引發PathTooLongException
- 他說:「完全合格的文件名必須少於260個字符,並且目錄名稱必須少於248個字符「。
我想這是因爲Directory.Move附加一個試運行斜線和然後檢查(路徑+「\」)。長度< 248.
具有相同路徑Directory.Delete方法不拋出。
我假設問題是Windows資源管理器允許創建這樣的文件夾,任何人都可以確認這是Windows資源管理器的行爲錯誤還是Directory.Move中的錯誤?
我總是有同樣的問題,我現在對自己的回答是:_這是Windows API(Windows資源管理器)和.net framework._ – Bolu