DirectoryInfo, FileInfo и очень длинный путь

Я пытаюсь работать с DirectoryInfo, FileInfo с очень длинным путем.

  • Я пытаюсь использовать \\?\c:\длинный путь (я получил незаконный caracter с fileInfo и DirectoryInfo)
  • Я пытаюсь использовать файл://c:/long path (я получил uri не поддерживается)

Могу ли я использовать ~ в пути или что-то еще.

Я прочитал этот пост, но я хотел бы использовать другой способ, который вызывает API. Это любые другие решения?

Существует статья от Microsoft для использования \\? в пути к файлу текст ссылки

Вопрос в том, как я могу работать с очень длинным путем, и DirectoryInfo, и FileInfo для пути, которые более длинны, чем 256 char

Ответ 2

Библиотека снова доступна в этом месте.

Это .NET-библиотека, написанная против .NET Framework 2.0, и может использоваться для  доступ к очень длинной папке и файлам из приложения .NET.

Так как .NET Framework не поддерживает длинные имена файлов:-(  Мне пришлось написать библиотеку, которая вызывает API WIN32 и обертывает эти  функции, такие как System.IO. Хотя это не полная копия   System.IO он имеет большинство доступных объектов и функций.

Delimon.Win32.IO заменяет основные файловые функции System.IO  с поддержкой длинного имени пути для символов до 32 767 символов  Итак, до свидания MAX_PATH проблема

Вы когда-нибудь сталкивались с этой проблемой?

System.IO.PathTooLongException был необработанным.

Сообщение:

Указанный путь, имя файла или оба слишком длинны. Полностью квалифицированное имя файла должно быть менее 260 символов, а имя каталога должно быть меньше 248 символов.

Ответ 4

Как я решил эту проблему в прошлом, я использовал библиотеку из Delimon под названием Delimon.Win32.IO. Похоже, что на данный момент его сайт http://www.delimon.be. Но в прошлом я использовал его в проекте, и он работал как чемпион. Я могу попытаться отследить его для вас позже этим вечером или просто попытаться найти правильную ссылку на него где-то через google. Приветствия. Здесь другая ссылка, обсуждающая эту проблему.

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2541a9b9-acd7-4338-89b1-dfc0408e41b5

Ответ 5

Начиная с .NET 4.6.2, эту проблему можно решить с помощью изменения политики групповой политики на локальном компьютере, что позволяет использовать длинные пути в Win 10+ и Server 2016 +.

Протестировано и подтверждено.

https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/