【发布时间】:2017-05-11 07:03:24
【问题描述】:
我正在尝试寻找解决 Windows 字符限制的解决方法,如果文件名称 >= 260 个字符,则不允许复制文件。根据this MSDN article,如果在文件名前加上\\?\,这将绕过文件名长度限制。
我试过这个测试:
string source = "\\\\?\\C:\\Users\\xxxx\\Documents\\Visual Studio 2013\\Projects\\PDFConverterTester\\PDFConverterTester_BatchGUI\\bin\\Debug\\folder1\\a.txt";
string dest= "\\\\?\\C:\\Users\\xxxx\\Documents\\Visual Studio 2013\\Projects\\PDFConverterTester\\PDFConverterTester_BatchGUI\\bin\\Debug\\folder2\\a.txt";
System.IO.File.Copy(source, dest);
但这引发了异常:
Illegal characters in path.
我应该以不同的方式应用此前缀吗?
编辑:我公司的 IT 政策不允许我在没有经过漫长审查过程的情况下安装任何新软件,这意味着我无法更新到 4.6.2。所以我想弄清楚如何通过我现有的 Visual Studio .NET 4.5 安装中的 Windows API 调用来解决这个问题。
【问题讨论】:
-
您是否在 .NET Framework 4.6.2 上运行?