Я пытаюсь найти обходное решение для ограничения символов 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.
Должен ли я претендую этот префикс по-другому?
Редактировать: ИТ-политика моей компании не позволяет мне устанавливать какое-либо новое программное обеспечение без длительного процесса просмотра, то есть я не могу обновить до 4.6.2. поэтому я пытаюсь выяснить, как решить эту проблему с помощью вызовов Windows API из моей существующей установки Visual Studio .NET 4.5.
Вы работаете в .NET Framework 4.6.2? – yaakov
@codran, no, 4.5 – sigil