public void Save_Token(string _Token)
{
var Token_Location = @".token.txt";
using (StreamWriter sw = new StreamWriter(Token_Location))
{
sw.WriteLine(_Token);
}
}
我试图从api(json(中获取令牌,并对其进行了反序列化和保存。我想写入该文件以保存以备将来使用。但我希望这个应用程序能在任何人的电脑上运行,所以我不想使用完整的路径。
我也试过
Path.Combine(Environment.CurrentDirectory,Token_Location);
仍然没有写任何东西,除非我使用完整的路径。
您不能保证当前用户对执行文件的文件夹具有写访问权限。在计算机上存储用户数据时,应用程序应该使用一个特殊的文件夹(APP_DATA(:
public void Save_Token(string _Token)
{
var tokenDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "YourCompanyOrOrganizationName");
var tokenFile = Path.Combine(tokenDirectory, "token.txt");
Directory.CreateDirectory(tokenDirectory);
File.WriteAllText(tokenFile, _Token);
}
然后,您的文件将存储在类似"C:UsersyourusernameAppDataRoamingYourCompanyOrOrganizationNametoken.txt"
的路径中
在软件源代码中使用相对路径通常是个坏主意;当前工作目录";相对路径所相对的进程的状态可以在应用程序的运行时间内改变。
显示文件打开对话框或使用第三方组件等活动可能会意外更改当前工作目录,因此假设某个当前工作目录是危险的。