| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Сокращенное имя файла |
| Автор: ActioN 4.5.2006, 00:00 | ||
| Есть файл который находится здесь: C:\Program Files\my test file.txt. ParamStr(1) возвращает C:\Progra~1\MYTEST~1... Как преобразовать путь и имя файла в нормальный вид? Функция ExpandFileName не помагает, она только путь к файлу делает нормальным, а имя файла остается сокращенным. Нашел вот такой вариант, но неужели ничего проще нету?
|
| Автор: Romikgy 4.5.2006, 00:16 |
это командная строка , тлько где параметры? тест или файл тхт? |
| Автор: DigitalDummy 4.5.2006, 02:09 |
Насколько мне известно, ничего проще нету, чем вызвать нужные API функции и вызов всего этого "завернуть" в свою функцию. Но, по сути это получится тоже самое, что и приведённый Вами пример, потому что для получения полного имени файла средствами API надо использовать функцию FindFirstFile. В идеале же, если программа разрабатывается для Windows 2000, XP или чего повыше, я бы рекомендовал использовать всё те же API функции для получения данных о путях и именах файлов таким образом, чтобы в программе участвовали только длинные имена файлов и папок. Может быть, даже, в Unicode формате. |
| Автор: likehood 4.5.2006, 09:15 | ||
Как передаются параметры командной строки? Если так, то все должно работать:
|
| Автор: SergeCpp 4.5.2006, 09:22 |
| http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getlongpathname.asp |
| Автор: ActioN 5.5.2006, 00:18 |
| Romikgy, несовсем Вас понял. DigitalDummy, учтем. baronp, проблема в том, что моя программа асоциирована с некоторым типом файла. Этот файл находится (к примеру) в вышеуказанной папке /Program Files/... и при двойном клике на нем из проводника запускается программа и узнается имя запускаемого файла. SergeCpp, в MSDN написано: Client: Requires Windows XP, Windows 2000 Professional, Windows Me, or Windows 98. То есть на Windows 95 программа, используемая эту функцию не запустится? |
| Автор: ActioN 6.5.2006, 00:32 |
| DigitalDummy, спасибо, понял |