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

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

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

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

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

Есть статья от майкрософт для использования \\? в тексте пути к файлу

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

5 ответов

Решение

Глядя на серию публикаций в блоге " Длинные пути".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/

Другие вопросы по тегам