如何在具有长名称的文件夹中创建文件。 (避免PathTooLongException)

时间:2012-05-11 15:46:25

标签: c# asp.net-mvc .net

  

可能重复:
  How to avoid 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个字符。

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

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

1 个答案:

答案 0 :(得分: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直接拨打电话。