Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Системные функции, WinAPI, работа с железом > Получение полного и короткого пути |
Автор: Rouse_ 31.01.06, 09:38 |
P.O.D, круто Но вот так, думаю, будет попроще: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> unit Unit1; 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. |