Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.20;
Скачать: CL | DM;

Вниз

Как юзать эту функцию ?   Найти похожие ветки 

 
Валет   (2002-06-06 20:03) [0]

Как юзать эту функцию ?


{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение длинного имени файла по его короткому имени

Функция преобразует короткое имя файла в длинное.

Зависимости: Windows, SysUtils, Classes
Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 29 апреля 2002 г.
***************************************************** }

function GetLongName(const FileName: string): string;
var
GetLongPathName: function (pszShortName, pszLongName: PChar;
cchBuffer: Integer): Integer stdcall;
Handle: HINST;
Buffer: array[0..MAX_PATH-1] of AnsiChar;

function InternalGetLongName(FileName: string): string;
var
SearchRec: TSearchRec;
FindResult: Integer;
Path, S1, S2, SN: string;
begin
if (FileName = "") or
(GetFileAttributes(PChar(FileName)) = $FFFFFFFF) then begin
Result:="";
Exit;
end;
Path:=ExtractFilePath(FileName);
S1:=FileName;
Delete(S1, 1, 1);
if (Path<>"") and (S1<>":") and (S1<>"\") then begin
FindResult:=FindFirst(Path+"*.*", faAnyFile, SearchRec);
try
Result:=FileName;
SN:=ExtractFileName(FileName);
while FindResult = 0 do begin
S2:=SearchRec.Name;
if (SN = S2) or (SN = SearchRec.FindData.cAlternateFileName) then begin
Result:=InternalGetLongName(ExcludeTrailingBackslash(Path))+"\"+S2;
Break;
end;
FindResult:=FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
end else Result:=FileName;

end;

begin
Handle:=GetModuleHandle("kernel32.dll");
@GetLongPathName:=GetProcAddress(handle, "GetLongPathNameA");
if Assigned(GetLongPathName) then begin
if GetLongPathName(PChar(FileName), @Buffer[0], SizeOf(Buffer))<>0
then Result:=PChar(@Buffer[0]) else Result:=FileName;
end else Result:=InternalGetLongName(FileName);
end;


Пытался так:

Label1.caption:= GetLongName("C:\Downloads\dial-u~1.htm");

Но ничего не происходит =(
т.е в лэйбле остаётся короткое имя.


 
Song ©   (2002-06-06 20:34) [1]

Ужас какой... В FAQ есть в два разе меньше и работающая!



Страницы: 1 вся ветка

Текущий архив: 2002.06.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
3-64995
kserg@ukr.net
2002-05-29 10:22
2002.06.20
DBImage: как вывести в него JPEG или чем заменить?


14-65211
nnn
2002-05-17 09:14
2002.06.20
Помогите с Perl - может кто знает этот язык?


1-65120
Voldemar
2002-06-06 17:45
2002.06.20
TreeView и PopUpMenu


1-65143
Валет
2002-06-07 14:12
2002.06.20
Получение длинного имя файла по короткому.


1-65115
Sergey Novoselow
2002-06-07 05:37
2002.06.20
как в ToolBar встроить системные кнопки