2010-12-19 96 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