使用用户的用户名作为打开文件的路径

时间:2014-12-10 18:25:46

标签: c# path username

我最近不得不在C#中创建一个只需打开文本文件的按钮。这项工作很容易,直到我意识到我没有想法如何打开文件,为什么?好吧,因为我无法想到在文件路径中“定义”用户名的方法。

以下是我尝试使用的代码:

private void button5_Click(object sender, EventArgs e)
{
    try
    {
        System.Diagnostics.Process.Start("C:\\Users\\%USERNAME%\\AppData\\Roaming\\SchoolProject\\file.txt");
    }
    catch { }
}

而且,它没有用。

那么这个问题的解决方案是什么?如果你想知道答案,请非常明确,我是编程语言的新手,我不太了解这些代码。 (如果可以,如果问题不是太多,请在答案中加入适用的代码。)

2 个答案:

答案 0 :(得分:1)

您可以通过Environment.SpecialFolders枚举和GetFolderPath方法访问所有这些“特殊”文件夹位置。

在您的情况下,您需要SpecialFolder.ApplicationData。类似的东西:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "test.txt");

可以在MSDN上找到所有特殊文件夹。

答案 1 :(得分:1)

您需要扩展环境变量使用: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然后您可以在异常时记录/查看调试器它的消息。

相关问题