簡體   English   中英

使用用戶的用戶名作為打開文件的路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM