Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 23:36   #1
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию Как получить короткий путь

Почему-то не могу получить короткий путь в котором есть русский шрифт
например

C:\Document and Setting\Андрей

Как такой путь конвертировать в короткий?
Д'якон вне форума Ответить с цитированием
Старый 28.05.2009, 00:51   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можете сделать так:
Код:
Function Sfn(Const LongName: String): String;
// Возвращает LongFileName преобразованное в соответствующее короткое имя
Var
I :Integer;
Begin
SetLength(Result,Length(LongName));
I:=GetShortPathName(PChar(LongName),PChar(Result),Length(Result));
If I > Length(Result)  Then
Begin
SetLength(Result,I);
I:=GetShortPathName(PChar(LongName),PChar(Result),Length(Result));
End;
SetLength(Result,I);
End;
//Пример использования
Procedure TForm1.Button1Click(Sender: TObject);
Begin
Edit1.Text:=Sfn('C:\Documents and Settings\Андрей\Рабочий стол\Андрей\Winamp media file.wav');
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 30.05.2009, 15:20   #3
Д'якон
Форумчанин
 
Регистрация: 05.12.2007
Сообщений: 236
По умолчанию

Чет с русскими шрифтом в названии пути все ровно не работает
Д'якон вне форума Ответить с цитированием
Старый 30.05.2009, 17:08   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от Д'якон Посмотреть сообщение
Чет с русскими шрифтом в названии пути все ровно не работает
Я у себя проверял. У меня всё хорошо работает.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 12.09.2009, 13:16   #5
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

Здрасте.. собственно говоря хоть тема и старая.. но все же возник такоей вопрос.. как же всетаки 100% получить короткий путь к файлу (в DOS'овском виде)..

все написаное выше работает не коректно.. а точянее не кореектно работает GetShortPathName.. вот пример:
Цитата:
c:\Program Files\
преобразовывает в
c:\Progra~1
а от
E:\Program Files\
так и оставляет

и при этом GetLastError возвращает 0
так же на некоторых форумах говорится
Цитата:
Функция GetShortName не работает на разделах с NTFS
хатя в MSDN я этого не увидел.


собственно говоря.. вопрос в том как еще это можна простенько реализовать??
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить путь к файлу Manya Общие вопросы Delphi 5 22.05.2012 16:12
Как отсечь имя файла и получить путь только к нему? Dux Общие вопросы Delphi 8 25.05.2008 20:24
Как получить полный путь к файлу, который был послан на принтер? Stilet Общие вопросы Delphi 7 29.02.2008 17:49
Как получить путь к БД XPAiN БД в Delphi 2 08.11.2007 08:51
как получить относительный путь? Alar Общие вопросы Delphi 0 30.10.2006 00:27