2014-09-19 115 views
0

我被困在一些非常簡單的東西,但似乎無法找到我正在尋找什麼。如何在C#中使用「Environment.UserName」檢查文件是否存在?

我在寫一個簡單的應用程序來檢查文件是否存在。它將被多個用戶使用,因此不能包含特定的用戶名。

我可以用得到當前用戶名:

string userName = Environment.UserName; 

當我使用IF語句來檢查文件是否存在,我收到錯誤「無法識別的轉義序列」下的文件的「d」。

if (File.Exists(@"C:\Users\"+ userName +"\Documents\test.txt")) 
     { 
      lblUser.Text = "File exists"; 
     } 

任何人都可以指出我的愚蠢錯誤嗎?

謝謝!

+0

對你choosen答案沒有一個文檔。它正確指向原始問題,但是如果您的用戶轉到「文檔」文件夾的「屬性」頁面並更改「路徑」頁面中的值?選擇的答案失敗,還有其他問題,如使用硬編碼路徑,使用操作系統特定的路徑分隔符。所有這些類型的問題都可以避免,如果你使用特定的框架工具 – Steve 2014-09-19 16:21:39

回答

3

連接時需要reescape。

if (File.Exists(@"C:\Users\"+ userName [email protected]"\Documents\test.txt")) 
6

請勿使用Environment.UserName來查找Documents文件夾。
用戶可以使用操作系統工具輕鬆更改該位置。

改用

string docFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 
string fileToCheck = Path.Combine(docFolder, "test.txt"); 
if (File.Exists(fileToCheck)) 
{ 
    lblUser.Text = "File exists"; 
} 

查看Environment.SpecialFolder enum here

+1

你擊敗了我; p – 2014-09-19 13:22:13

+0

@MarcGravell它不會每天都發生:-) – Steve 2014-09-19 13:23:07

+1

只是看看文檔,僅供參考 - '.Personal'可用時可能更可取;它*本質上*相同,但在XNA中也存在 – 2014-09-19 13:24:20

相關問題