Как быть с файлами, имя которых длиннее 259 символов?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как быть с файлами, имя которых длиннее 259 символов?

Сообщение Anonymous »

Я работаю над приложением, которое просматривает каждый файл в некоторых каталогах и выполняет с этими файлами некоторые действия. Помимо прочего, мне необходимо получить размер файла и дату изменения этого файла.

Полные имена некоторых файлов (каталог + имя файла) слишком длинные, я не смог' Не используйте .NET Framework FileInfo, размер которого ограничен MAX_PATH (260 символов). Многие веб-источники советуют использовать собственные функции Win32 через P/Invoke для доступа к файлам со слишком длинными именами.

В настоящее время та же проблема возникает с функциями Win32. . Например, GetFileAttributesEx (kernel32.dll) завершается с ошибкой Win32 3 ERROR_PATH_NOT_FOUND для пути длиной 270 байт.

Тот же самый файл можно успешно открыть из Notepad2 и успешно отображается в проводнике Windows (но Visual Studio 2010, например, не может открыть его из-за ограничения в 259 символов¹).

Что я могу сделать, чтобы получить доступ файл, если длина пути к файлу составляет 270 символов?

Примечания:


[*] Удаление или игнорирование файлов с длиной пути к файлу более 259 символов не является решением.
[*]Я ищу только решения, совместимые с Unicode.
[*]Приложение будет работать под управлением Windows 2008/Vista или более поздней версии с установленной .NET Framework 4.




¹ Удивительно, но Microsoft Word 2007 дает сбой, жалуясь на то, что «дискета слишком мала» на компьютере, который у вас нет флоппи-дисковода, или что «ОЗУ недостаточно», когда осталось 4 ГБ ОЗУ, или, наконец, «антивирусное программное обеспечение [...] необходимо обновить». Перестанут ли когда-нибудь выводить такие глупо бессмысленные ошибки хотя бы в таких ключевых продуктах, как Microsoft Office?

Подробнее здесь: https://stackoverflow.com/questions/518 ... characters
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»