Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение длинного имя файла по короткому. [D5, WinXP]


Валет ©   (2002-06-07 14:12:00) 

Посмотрел FAQ там приведён пример получения длинного имя файла по короткому.
Ничерта не разобратся, помогите пожалуйста.
А то у меня пол винта поросло из-за копирования в досе =(

Есть такая функция:

function ShortToLongPath(const ShortName: string): string;
var LastSlash: PChar;
TempPathPtr: PChar;
strTmp: string;

begin
Result := "";
TempPathPtr := PChar(ShortName);
LastSlash := StrRScan(TempPathPtr, "\");
while LastSlash <> nil do
begin
strTmp := ShortToLongFileName(TempPathPtr); //Тут компилятор ругается
if strTmp <> "" then
begin
Result := "\" + strTmp + Result;
if LastSlash <> nil then
begin
LastSlash^ := char(0);
LastSlash := StrRScan(TempPathPtr, "\");
end;
end
else
LastSlash := nil;
end;
Result := TempPathPtr + Result;
end;


Как быть-то ?

Как всегда, с большим уважением, Дмитрий.


MBo   (2002-06-07 14:40:00) [1]

function ShortToLong(sfname:string):string;
var info:TSHFileInfo;
begin
if SHGetFileInfo(PChar(sfname),0,info,SizeOf(info),SHGFI_DISPLAYNAME)<>0
then Result:=string(info.szDisplayName);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption:=ShortToLong("C:\PROGRA~1");
end;


Игорь Шевченко   (2002-06-07 14:37:00) [2]

Если не секрет, в каком каталоге D6 есть модуль FileUtil.pas ?


Black Cat   (2002-06-07 14:36:00) [3]

Поправка :) RxLib


Black Cat   (2002-06-07 14:34:00) [4]

Функция не самоделишняя, в д6 в модуле FileUtil


Song   (2002-06-07 14:27:00) [5]

procedure TForm1.Button1Click(Sender: TObject);
Var SearchRec:TSearchRec;
Begin
IF FindFirst("C:\DownLoad\dial-u~1.htm", faAnyFile,SearchRec)=0 then ShowNesssage(SearchRec.FindData.CFileName);
FindClose(SearchRec);
End;


Lord Warlock   (2002-06-07 14:20:00) [6]


> ShortToLongFileName

функция явно самодельная, ищи дальше...


Наверх

Титульная страница Поиск, карта сайта Написать письмо