要超过c#中的最大路径限制,您显然需要将驱动器路径与@"\\?\"
连接起来。如果我这样做,那么我与在前面避免最大字符数限制c#
\\\\?\\\\\\server\\share\\...
现在如果我期待已久的文件/文件夹,因为在路径非法charachters它会失败以下驱动器路径(我假设?
)那么我如何才能正确地采用微软网站(http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx)中列出的方法?
foreach (string filePath in Directory.GetFiles(folder))
{
String s = @"\\?\" + filePath;
if (filePath.Length > 255)
{
Console.WriteLine(filePath);
}
if (File.Exists(filePath))
{
FileInfo finfo = new FileInfo(s);
folderSize += finfo.Length;
}
}
foreach (string dir in Directory.GetDirectories(folder))
folderSize += GetDirectorySize(dir);
你可以在你尝试使用长路径的地方显示一些代码吗?你是在创建一个文件或文件夹还是读取嵌套在很长路径中的现有文件?阅读下面的答案。 –
我想计算一组共享驱动器的大小,它们在某些情况下非常大,因此路径通常超过255个字符 – James