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

Вниз

Полный путь директории   Найти похожие ветки 

 
q1485   (2007-12-15 18:09) [0]

Как мне из

C:\DOCUME~1\User\LOCALS~1\Temp\

получить

C:\Documents and Settings\User\Local Settings\Temp\


 
Denis__ ©   (2007-12-15 18:15) [1]

А откуда ты получил это самое C:\DOCUME~1\User\LOCALS~1\Temp\?


 
Джо ©   (2007-12-15 18:18) [2]

GetLongPathName


 
Германн ©   (2007-12-15 18:27) [3]

function GetLongFName(FName: String): String;
var
 Str2: String;
 GetLongPathName: Function (ShortPathName: PChar; LongPathName: PChar;
  cchBuffer : Integer): Integer Stdcall;
 Handle     : THandle;
begin
 Result:="";
 GetLongPathName:=nil;
 SetLength(Str2,256);
 Handle:=GetModuleHandle("kernel32.dll");
 if Handle = 0 then exit;
 @GetLongPathName := GetProcAddress(Handle, "GetLongPathNameA");
 if Assigned(GetLongPathName) and (GetLongPathName(PChar(FName),PChar(Str2),256) <> 0)
 then Result:=Str2;
end;


 
q1485   (2007-12-15 18:40) [4]


> А откуда ты получил


Отсюда..

function GetTmpPath():string;
var
 TempPath: array [0..MAX_PATH] of Char;
begin
 GetTempPath(MAX_PATH, TempPath);
 Result:=TempPath;
end;



> GetLongFName


Спасибо.
Только не понял идеи, почему первой строчкой Result:=""; а не Result:=FName;
и еще, она доставляет #0 в конце до длины 256 символов..
Result:=TrimRight(Str2) это исправил... так правильно делать?


 
Leonid Troyanovsky ©   (2007-12-16 12:07) [5]


> q1485   (15.12.07 18:40) [4]


function GetLongPathName(lpszShortName: LPCTSTR; lpszLongName: LPTSTR;
cchBuffer: DWORD): DWORD; stdcall;
external kernel32 name "GetLongPathNameA";

function GetLongPath(const ShortName: string): string;
var
 bytes: Integer;
begin
 SetLength(Result, MAX_PATH);
 bytes := GetLongPathName(Pointer(ShortName), PChar(Result), MAX_PATH);
 Win32Check(bytes <> 0);
 SetLength(Result, bytes);
end;


--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-12-16 13:14) [6]


> Leonid Troyanovsky ©   (16.12.07 12:07) [5]

>  SetLength(Result, MAX_PATH);

SetLength(Result, MAX_PATH +1);

Sorry.

--
Regards, LVT.



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

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

Наверх




Память: 0.47 MB
Время: 0.02 c
2-1197373127
@!!ex
2007-12-11 14:38
2008.01.13
Фиксация углов куба.


6-1177322028
Ypbi4
2007-04-23 13:53
2008.01.13
ClientSocket -- получение ответа на запрос


2-1197580640
Reals
2007-12-14 00:17
2008.01.13
TreeView: перетащить item в другое место.


6-1177784081
Dmitry_177
2007-04-28 22:14
2008.01.13
не доходит значение типа integer


4-1182091700
spin722
2007-06-17 18:48
2008.01.13
работа с модемом