bestlong 怕失憶論壇
標題:
如何取得暫存目錄的路徑
[打印本頁]
作者:
bestlong
時間:
2010-5-26 13:48
標題:
如何取得暫存目錄的路徑
可以用讀取系統變數 TEMP 或是 TMP 的方式:
uses SysUtils;
t := GetEnvironmentVariable('TEMP');
複製代碼
另外也可以用 GetTempPath API function 取得, 不過直接使用比較麻煩所以用函數包裝一下:
uses SysUtils;
function GetTempDirectory: String;
var
tempFolder: array[0..MAX_PATH] of Char;
begin
GetTempPath(MAX_PATH, @tempFolder);
result := StrPas(tempFolder);
end;
複製代碼
這樣就可以簡單的用呼叫函數的方式應用:
t := GetTempDirectory;
複製代碼
作者:
bestlong
時間:
2010-5-26 13:57
若是程式可以同時多次執行的話, 用相同的暫存目錄能會有問題時, 可以再增加利用 Process identifier 的數值加一層目錄來區分, 路徑取得方法如下:
t := GetTempDirectory + IntToStr(GetCurrentProcessId) + '\';
複製代碼
不過這個路徑就不一定會存在, 需要自行檢查與建立
作者:
bestlong
時間:
2010-5-26 21:24
在 Delphi 中使用臨時的目錄或檔案
http://www.bestlong.idv.tw/thread-27-1-1.html
作者:
bestlong
時間:
2010-5-26 21:36
另一個產生唯一暫存路徑的方式
可以用產生 GUID 數值然後轉成 String 的做法
作者:
bestlong
時間:
2010-5-26 21:40
From
http://zh-tw.how-to.mobi/index.php?id=272783
function GetTemporaryFileName:string;
var
Path, FileName: array[0..MAX_PATH] of Char;
begin
Win32Check(GetTempPath(MAX_PATH, Path) <> 0);
Win32Check(GetTempFileName(Path, '~EX', 0, FileName) <> 0);
Result:=String(Filename);
end;
複製代碼
作者:
bestlong
時間:
2010-5-26 21:42
From
http://www.programmer-club.com.t ... N/delphi/13815.html
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Get_TempFileName);
end;
function TForm1.Get_TempFileName: String;
var
TempFile,TempDir : array[1..256] of Char;
Files,Dirs:PChar;
begin
Files:=@TempFile;
Dirs:=@TempDir;
GetTEmpPath(256,dirs);
GetTempFileName(dirs,'~Tmp',0,Files);
Result:=Copy(Files,1,Length(Files));
end;
複製代碼
歡迎光臨 bestlong 怕失憶論壇 (http://www.bestlong.idv.tw/)
Powered by Discuz! X1.5