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

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

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

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

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

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

Примечания:

Удаление или игнорирование файлов с длиной пути файла более 259 символов не является решением.

Я ищу только Unicode-совместимые решения.

Приложение будет работать в Windows 2008 / Vista или более поздней версии с установленной .NET Framework 4.

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

Ответы на вопрос(8)

Ваш ответ на вопрос