2

可能重复:
如何避免 System.IO.PathTooLongException?

在我的应用程序文件夹结构中有很长的时间。我需要保存在此文件夹中的文件(我没有更改架构文件夹的选项!)

[已编辑]

using (var fileStream = File.Create(@"\\?\" + filePath, (int) file.Value.Length))
{
    var bytesInStream = new byte[file.Value.Length];
    file.Value.Read(bytesInStream, 0, bytesInStream.Length);
    fileStream.Write(bytesInStream, 0, bytesInStream.Length);
}

问题是完整路径“filePath”有超过 260 个字符!

错误:

System.IO.PathTooLongException 指定的路径、文件名或两者都太长。完全限定文件名必须少于 260 个字符,目录名必须少于 248 个字符。

但他必须保存在这个文件夹中!

如何在不更改文件夹结构或文件名的情况下将此文件保存在此文件夹中?

4

1 回答 1

2

关于使用长路径和所涉及的头痛的好文章。在沿着这条道路前进之前,请确保您确实需要它们。相对路径不起作用“...\a.txt”

http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton.aspx

其他替代方法是使用 Win32 API 直接进行调用。

于 2012-05-11T16:58:21.030 回答