2010-12-19 88 views
4

如何爲這兩種方法設置臨時路徑?.NET更改臨時路徑

System.IO.Path.GetTempFileName() 
System.IO.Path.GetTempPath() 

我公司應用程序是專爲Windows 2008和.NET 4.0。但是,該應用程序將支持Windows 2008和Azure。

由於Azure不允許本地文件寫入,因此不能在Azure中創建臨時文件。在應用程序中,有很多地方使用臨時文件進行大量工作(這意味着我們不能將數據放在內存中,因爲臨時文件很大)。

我的計劃是創建一個TempFileWrapper來替換原始臨時文件代。但是,如果只是簡單地改變System.IO.Path.GetTempFileName()System.IO.Path.GetTempPath的返回值,那就節省了我的作品!

謝謝!

回答

5

從這個blog post,第3谷歌命中公然複製:

var tempPath = RoleEnvironment.GetLocalResource("Temp").RootPath; 
Environment.SetEnvironmentVariable("TEMP", tempPath); 
Environment.SetEnvironmentVariable("TMP", tempPath); 
3

MSDN documentation介紹如何GetTempPath找到路徑:

  1. 由TMP環境變量指定的路徑。
  2. 由TEMP環境變量指定的路徑。
  3. USERPROFILE環境變量指定的路徑。
  4. Windows目錄。

因此,只需更改TMP或TEMP環境變量即可。

+0

我們能否改變Azure的這些變量? – 2010-12-19 22:28:14

+0

是的,你可以。不過,看起來漢斯帕斯特打敗了我。 – EMP 2010-12-19 23:37:29