bestlong 怕失憶論壇

 

 

搜索
bestlong 怕失憶論壇 論壇 Delphi 如何取得暫存目錄的路徑
查看: 5163|回復: 5
go

如何取得暫存目錄的路徑 [複製鏈接]

Rank: 9Rank: 9Rank: 9

1#
發表於 2010-5-26 13:48 |只看該作者 |倒序瀏覽 |打印
可以用讀取系統變數 TEMP 或是 TMP 的方式:
  1. uses SysUtils;

  2. t := GetEnvironmentVariable('TEMP');
複製代碼
另外也可以用 GetTempPath API function 取得, 不過直接使用比較麻煩所以用函數包裝一下:
  1. uses SysUtils;

  2. function GetTempDirectory: String;
  3. var
  4.   tempFolder: array[0..MAX_PATH] of Char;
  5. begin
  6.   GetTempPath(MAX_PATH, @tempFolder);
  7.   result := StrPas(tempFolder);
  8. end;
複製代碼
這樣就可以簡單的用呼叫函數的方式應用:
  1. t := GetTempDirectory;
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

2#
發表於 2010-5-26 13:57 |只看該作者
若是程式可以同時多次執行的話, 用相同的暫存目錄能會有問題時, 可以再增加利用 Process identifier 的數值加一層目錄來區分, 路徑取得方法如下:
  1. t := GetTempDirectory + IntToStr(GetCurrentProcessId) + '\';
複製代碼
不過這個路徑就不一定會存在, 需要自行檢查與建立
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

3#
發表於 2010-5-26 21:24 |只看該作者
在 Delphi 中使用臨時的目錄或檔案
http://www.bestlong.idv.tw/thread-27-1-1.html
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

4#
發表於 2010-5-26 21:36 |只看該作者
另一個產生唯一暫存路徑的方式
可以用產生 GUID 數值然後轉成 String 的做法
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw

Rank: 9Rank: 9Rank: 9

5#
發表於 2010-5-26 21:40 |只看該作者
From http://zh-tw.how-to.mobi/index.php?id=272783
  1. function GetTemporaryFileName:string;
  2. var
  3.   Path, FileName: array[0..MAX_PATH] of Char;
  4. begin
  5.   Win32Check(GetTempPath(MAX_PATH, Path) <> 0);   
  6.   Win32Check(GetTempFileName(Path, '~EX', 0, FileName) <> 0);
  7.   Result:=String(Filename);
  8. end;
複製代碼
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw
‹ 上一主題|下一主題

Archiver|怕失憶論壇

GMT+8, 2024-5-17 10:31 , Processed in 0.012312 second(s), 10 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.