I have a simple problem. I have a path to a file in user directory that looks like this:
%USERPROFILE%\\AppData\\Local\\MyProg\\settings.file
You can use the Environment.Username
constant as well. Both of the %USERPROFILE%
and this Environment variable points the same( which is the currently logged user). But if you choose this way, you have to concatenate the path by yourself.
Try using ExpandEnvironmentVariables on the path.
I use this in my Utilities library.
using System;
namespace Utilities
{
public static class MyProfile
{
public static string Path(string target)
{
string basePath =
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) +
@"\Automation\";
return basePath + target;
}
}
}
So I can simply use e.g. "string testBenchPath = MyProfile.Path("TestResults");"
Use Environment.ExpandEnvironmentVariables on the path before using it.
var pathWithEnv = @"%USERPROFILE%\AppData\Local\MyProg\settings.file";
var filePath = Environment.ExpandEnvironmentVariables(pathWithEnv);
using(ostream = new FileStream(filePath, FileMode.Open))
{
//...
}
Use the Environment.ExpandEnvironmentVariables
static method:
string fileName= Environment.ExpandEnvironmentVariables(fileName);
ostream = new FileStream(fileName, FileMode.Open);