Ответ 1
Глядя на Длинные пути в .NET сообщение в блоге похоже, что переход к API Win32 через P/Invoke - единственное решение на данный момент, кроме реструктуризации ваших каталогов, чтобы вы не попадайте в предел.
Я пытаюсь работать с DirectoryInfo, FileInfo с очень длинным путем.
Могу ли я использовать ~ в пути или что-то еще.
Я прочитал этот пост, но я хотел бы использовать другой способ, который вызывает API. Это любые другие решения?
Существует статья от Microsoft для использования \\? в пути к файлу текст ссылки
Вопрос в том, как я могу работать с очень длинным путем, и DirectoryInfo, и FileInfo для пути, которые более длинны, чем 256 char
Глядя на Длинные пути в .NET сообщение в блоге похоже, что переход к API Win32 через P/Invoke - единственное решение на данный момент, кроме реструктуризации ваших каталогов, чтобы вы не попадайте в предел.
Библиотека снова доступна в этом месте.
Это .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 символов.
Доступна Библиотека Delimon.Win32.I O (V4.0), она написана против .NET Framework 4.0 и может использоваться либо в системах x86, и в x64.
Как я решил эту проблему в прошлом, я использовал библиотеку из Delimon под названием Delimon.Win32.IO. Похоже, что на данный момент его сайт http://www.delimon.be. Но в прошлом я использовал его в проекте, и он работал как чемпион. Я могу попытаться отследить его для вас позже этим вечером или просто попытаться найти правильную ссылку на него где-то через google. Приветствия. Здесь другая ссылка, обсуждающая эту проблему.
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/2541a9b9-acd7-4338-89b1-dfc0408e41b5
Начиная с .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/