Как получить длинное имя файла или каталога, зная короткое имя?

Previous  Top  Next

    
 

 

Используйте Win32_Find_Data поле TSearchRec.
 

Code:

            procedure TForm1.Button1Click(Sender: TObject);

            var

              SearchRec : TSearchRec;

              Success : integer;

            begin

              Success := SysUtils.FindFirst('C:\DownLoad\dial-u~1.htm',

                                            faAnyFile,

                                            SearchRec);

              if Success = 0 then begin

                ShowMessage(SearchRec.FindData.CFileName);

              end;

              SysUtils.FindClose(SearchRec);

            end;

©Drkb::03165

Взято из http://forum.sources.ru

Автор: P.O.D.

 


 

 

Code:

unit Unit1;

 

{©Drkb v.3(2007): www.drkb.ru}

 

interface

 

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

   Button1: TButton;

   procedure Button1Click(Sender: TObject);

end;

 

function GetLongPathNameA(lpszShortPath, lpszLongPath: PChar;

   cchBuffer: DWORD): DWORD; stdcall; external kernel32;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

function ExpandFileName(Path: String): String;

begin

SetLength(Result, MAX_PATH);

if GetLongPathNameA(PChar(Path), @Result[1], MAX_PATH) = 0 then

   RaiseLastOSError;

Result := Trim(Result);

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

S: String;

begin

// Получаем полное имя

S := ExpandFileName('C:\DOCUME~1\');

ShowMessage(S);

// Получаем урезанное имя

GetShortPathName(PChar(S), PChar(S), MAX_PATH);

ShowMessage(S);

end;

 

end.

©Drkb::03166

 

Взято из http://forum.sources.ru

Автор: Rouse_