2012-06-26 67 views
2

我有一個Web服務調用另一個可執行文件,它獲取文件列表並將它們存儲在臨時位置,然後由Web服務讀取它們。Path.GetTempPath()返回的路徑是否保持不變?

我以爲我會使用系統的臨時文件夾,並發現我可以使用System.IO.Path.GetTempPath函數來獲取臨時文件夾並將我的文件存儲在這裏。但是,當我檢查這個函數返回的輸出它給了我

C:\ Users \用戶名\ AppData \本地的\ Temp \ 15 \

我擔心在最後的\ 15的路徑。這是否意味着由GetTempPath返回的臨時文件夾不是常量並且不斷變化?我需要的,因爲我需要的Web服務由可執行從臨時文件輸出讀取它是恆定的

+3

在當你保存文件,不只是存儲的文件名,存儲整個路徑上的點。那麼它是否會改變並不重要。 – Ben

+0

如何控制其他可執行文件寫入文件的位置?首先,將文件寫入磁盤可以執行可執行文件嗎?可執行文件是否以相同的身份運行? – Jodrell

+0

更具體說明... Web服務使用ID作爲第一個參數調用可執行文件。我的想法是,可執行文件將創建一個文件,其中包含id作爲名稱的一部分(如MyService_ .jpg)。 Web服務將從temp文件夾中讀取該文件(因爲它知道該id)。所以,@Ben我不會將文件名或路徑存儲在任何地方 – Sadhir

回答

1

documentation說:

的環境變量按以下順序存在這個方法檢查和使用找到的第一個路徑:

1.由TMP環境變量指定的路徑。

  1. 由TEMP環境變量指定的路徑。

  2. USERPROFILE環境變量指定的路徑。

  3. Windows目錄。

所以,除非你改變你的環境中的結果是穩定的。

0

即使這個職位是有點年紀大了,我想和大家分享的知識:-)

當在運行的TerminalServer是Windows的默認行爲創建一個單獨的臨時子文件夾中的每個連接到該服務器。有很多方法可以影響這個,但是在你想要做這個之前,我寧願把你的文件放在別的地方。

http://blogs.msdn.com/b/oldnewthing/archive/2011/01/25/10119675.aspx

相關問題