如何强制最大路径长度超过260个字符

时间:2016-06-27 11:12:57

标签: c#

我遇到了保存问题。我需要图像哪条路径长于260个字符(可悲的是它们必须长得这么长。不是我的想法!)

我在这里找到了这个: https://blogs.msdn.microsoft.com/bclteam/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton/

我试过了\?\但它没有用。

我的路径是:" \\?\ D:\ Temp1 \ Data \" 在这种情况下,Visual Studio说有一个未知的转义序列。

代码:

RootDir = "\\?\"+RootDir;

例外:无。 Visual Studio简单地说有一个未知的转义序列

然后我试了@" \\?\ D:\ Temp1 \ Data" Visual Studio说有一个不允许的标志。我想这是"?" 代码:

RootDir = @"\\?\"+RootDir;

例外: 路上的非法人物。 也许这有助于这种情况: System.Security.Permissions.FileIOPermission.CheckIllegalCharacters(String [] str)

当我在没有\\?\的情况下尝试它时,会出现Windows异常,其中Path只允许260个字符。

我做了什么错误?

我希望你能帮助我。

祝你好运 理查德

我尝试过:

这些链接: https://blogs.msdn.microsoft.com/bclteam/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton/

https://msdn.microsoft.com/en-us/library/aa365247.aspx

2 个答案:

答案 0 :(得分:0)

长路径前缀有两个斜杠,而不是一个

string longPath = @”\\?\” + fileName;

UDT: 请查看此question和此lib

同时检查this

根据这些帖子,你应该使用winAPI来处理长路径

答案 1 :(得分:0)

根据您发布的链接,您必须在问号

之前写入带有2个反斜杠的路径

所以路径应该是这样的

@"\\?\D:\Temp1\Data"

或者这个

"\\?\D:\Temp1\Data"