[英]Using the user's username as path for opening a file
最近,我不得不在C#中创建一个仅需打开文本文件的按钮。 这项工作很容易,直到我意识到我对如何打开文件没有想法,为什么? 好吧,仅因为我想不出一种在文件路径中“定义”用户名的方法。
这是我尝试使用的代码:
private void button5_Click(object sender, EventArgs e)
{
try
{
System.Diagnostics.Process.Start("C:\\Users\\%USERNAME%\\AppData\\Roaming\\SchoolProject\\file.txt");
}
catch { }
}
而且,它没有用。
那么该问题的解决方案是什么? 如果您想知道答案,请非常明确地告诉我,我是编程语言的新手,我不太了解代码。 (如果可以的话,如果要求的不是太多,请在您的答案中包含应该起作用的代码。)
您可以通过Environment.SpecialFolders
枚举和GetFolderPath
方法访问所有这些“特殊”文件夹位置。
在您的情况下,您需要SpecialFolder.ApplicationData
。 就像是:
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "test.txt");
所有特殊文件夹都可以在MSDN上找到。
您需要扩展环境变量的使用: Environment.ExpandEnvironmentVariables
用等效于变量值的字符串替换指定字符串中嵌入的每个环境变量的名称,然后返回结果字符串。
Environment.ExpandEnvironmentVariables("C:\\Users\\%USERPROFILE%\\AppData\\Roaming\\SchoolProject\\file.txt");
这将为您提供确切的路径。
因此,您的代码可能是:
string filePath = Environment.ExpandEnvironmentVariables("C:\\Users\\%USERPROFILE%\\AppData\\Roaming\\SchoolProject\\file.txt");
System.Diagnostics.Process.Start(filePath);
同样,使用空的try-catch
不会帮助您确定异常,捕获特定的异常或至少捕获基类Exception
,然后您可以在调试器中记录/查看该异常及其消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.