2010-06-19 4 views
0

У меня есть набор локальных путей, а некоторые из них заглавные (C: \ SOMEDIR \ SOMEFILE.TXT). Мне нужно преобразовать их в их настоящие имена (как показано в Проводнике). Предложите путь PLZ.Как исправить файл пути к файлу?

+1

Что вы подразумеваете под * настоящим именем *? В Windows есть скользкий наклон того, что может быть настоящим именем. В файловой системе FAT имя 8.3 более реально, чем версия LFN. В NTFS все имена файлов равны - у них просто разные пространства имен. – wallyk

ответ

0

Вы ищете that: короткие имена против длинного имени?

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

В противном случае вы можете попытаться получить доступ через OLE к функциям Проводника для отображения файлов в каталоге. Но это ОЧЕНЬ болезненный и подверженный ошибкам код. (Почему я предполагаю, что MS отказалась в конце и предоставила функции, которые я связал выше в Win2K).

0

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

Obtaining a File Name From a File Handle

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

1

Передайте свой путь к файлу FindFirstFile, полученный результат WIN32_FIND_DATA.cFileName будет в правильном регистре в формате read из файловой системы.

Смежные вопросы