我正在尝试寻找一种解决Windows字符限制的方法,该限制不允许复制文件名长度>= 260个字符的文件。根据这篇MSDN文章,如果在文件名前加上
我尝试了以下测试:
\\?\
,则可以规避文件名长度限制。我尝试了以下测试:
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版本。因此,我正试图通过从我现有的.NET 4.5安装的Visual Studio中调用Windows API来解决这个问题。