![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение длинного имя файла по короткому. [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
функция явно самодельная, ищи дальше...