標籤:windows中的路徑長度上限 248位元組 路徑名 directory name
可以用如下的C#代碼可驗證這個上限值。
// --------------------------------------------------------------------------------------------------------------------// <copyright file="Program.cs" company="Chimomo's Company">// Respect the work.// </copyright>// <summary>// The program.// </summary>// --------------------------------------------------------------------------------------------------------------------namespace CSharpLearning{ using System.IO; /// <summary> /// The program. /// </summary> public static class Program { /// <summary> /// The main. /// </summary> public static void Main() { Directory.CreateDirectory(@"D:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"); } }}
上面的代碼中,字串D:\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\剛好是247個位元組,再多加一個字元就會報錯:
Unhandled Exception: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
at System.IO.Directory.CreateDirectory(String path)
at CSharpLearning.Program.Main() in d:\My Project\Learning\CSharpLearning\CSharpLearning\Program.cs:line 24
Press any key to continue . . .
由此就驗證了Windows中的路徑長度上限是248位元組(因為Windows在儲存路徑名時末尾還要加一個‘\0‘)。但是,仍然可以手動做出一個路徑長度大於248位元組的一個路徑,只需在上述用代碼建立的路徑中任意重新命名一個檔案夾,使其檔案夾名字長度大於1位元組即可。