Reputation: 1487
I want to use StreamWriter
to write a file to the temp folder.
It might be a different path on each PC, so I tried using %temp%\SaveFile.txt
but it didn't work.
How can I save to the temp folder, using environmental variables?
And for example, can I use an environmental variable for storing files in %appdata%
?
Upvotes: 77
Views: 138143
Reputation: 6921
string result = System.IO.Path.GetTempPath();
https://learn.microsoft.com/en-us/dotnet/api/system.io.path.gettemppath
Upvotes: 123
Reputation: 216353
The Path class is very useful here.
You get two methods called
that could solve your issue
So for example you could write: (if you don't mind the exact file name)
using(StreamWriter sw = new StreamWriter(Path.GetTempFileName()))
{
sw.WriteLine("Your error message");
}
Or if you need to set your file name
string myTempFile = Path.Combine(Path.GetTempPath(), "SaveFile.txt");
using(StreamWriter sw = new StreamWriter(myTempFile))
{
sw.WriteLine("Your error message");
}
Upvotes: 54
Reputation: 2245
System.IO.Path.GetTempPath()
The path specified by the TMP
environment variable.
The path specified by the TEMP
environment variable.
The path specified by the USERPROFILE
environment variable.
The Windows directory.
Upvotes: 5
Reputation: 5810
You can dynamically retrieve a temp path using as following and better to use it instead of using hard coded string value for temp location.It will return the temp folder or temp file as you want.
string filePath = Path.Combine(Path.GetTempPath(),"SaveFile.txt");
or
Path.GetTempFileName();
Upvotes: 9
Reputation:
For %appdata% take a look to
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Upvotes: 2