Я работаю над приложением, которое просматривает каждый файл в некоторых каталогах и выполняет с этими файлами некоторые действия. Помимо прочего, мне необходимо получить размер файла и дату изменения этого файла.
Полные имена некоторых файлов (каталог + имя файла) слишком длинные, я не смог' Не используйте .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
Как быть с файлами, имя которых длиннее 259 символов? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение