2013-11-21 146 views
39

我想用StreamWriter将文件写入临时文件夹。将文件写入临时文件夹

它可能是在每台PC上不同的路径,所以我尝试使用%temp%\SaveFile.txt,但它没有奏效。

如何使用环境变量保存到临时文件夹?

例如,我可以使用环境变量来存储%appdata%中的文件吗?

回答

72
+0

OK,非常感谢你。我在哪里可以找到更多的环境变量,例如主硬盘,用户设置和应用程序数据? – BlueRay101

+1

System.Environment类将帮助您获取环境变量等。另外一定要查看System.Environment.SpecialFolder枚举。 http://msdn.microsoft.com/en-us/library/system.environment%28v=vs.110%29.aspx – trope

+0

因此对于临时文件夹,我总是必须使用Path.GetTempPath();,并且对于任何其他特殊路径(如AppData或ProgramFiles),我必须使用System.Environment? – BlueRay101

2

System.IO.Path.GetTempPath()

TMP环境变量指定的路径。 由TEMP环境变量指定的路径。 USERPROFILE环境变量指定的路径。 Windows目录。

30

Path类是非常有用的在这里。
你得到两种方法称为

Path.GetTempFileName

Path.GetTempPath

,可以解决你的问题

因此,例如,你可以写:(如果你不介意的确切文件名)

using(StreamWriter sw = new StreamWriter(Path.GetTempFileName())) 
{ 
    sw.WriteLine("Your error message"); 
} 

或者,如果你需要设置文件名

string myTempFile = Path.Combine(Path.GetTempPath(), "SaveFile.txt"); 
using(StreamWriter sw = new StreamWriter(myTempFile)) 
{ 
    sw.WriteLine("Your error message"); 
} 
+0

临时目录根据会话更改,使用RDP我登录并访问%TEMP%它指向temp/2以后temp/4 ...如何获取临时文件夹(不是temp/digit) – asvignesh

+1

不要问问题在一个三年答案的评论里面。发布(在强制研究之后)你自己的问题,指定与此处不同的内容 – Steve

6

可以使用如下,更好地用它代替使用临时location.It硬编码字符串值,只要你想将返回的临时文件夹或临时文件的动态检索一个临时路径。

string filePath = Path.Combine(Path.GetTempPath(),"SaveFile.txt"); 

Path.GetTempFileName(); 
1

为%APPDATA%看一看到

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 
+0

我可以将它保存为字符串变量,因此我不必每次都重写它? – BlueRay101

+0

当然你可以:) – 2013-11-21 21:41:18

+0

是否需要任何特殊权限的RW ..或标准用户也可以写在该目录上? – asvignesh