2014-04-19 32 views
0

而不是做這個每次如何給我的項目路徑分配一個字母?

String[] subject = File.ReadAllLines("C:\\Users\\VVIT\\Downloads\\notifications\\Mynotifications\\subjects.txt"); 

的剛需要這樣做:

String[] subject = File.ReadAllLines("~\\notifications\\Chairman\\subjects.txt"); 

每當我改變了項目的帶動,波浪〜必須自動獲取項目路徑。

回答

1

爲文件使用相對路徑名是不明智的。您的程序的工作目錄可能會更改,然後無法找到該文件。產生這樣的文件的絕對路徑名:

public static string GetAbsolutePath(string filename) { 
    string dir = System.IO.Path.GetDirectoryName(Application.StartupPath); 
    return System.IO.Path.Combine(dir, filename); 
} 

用法:

string[] lines= File.ReadLines(GetAbsolutePath(@"notifications\subjects.txt")); 
+0

感謝您的回答。已解決 – sivavvit

0

不要依賴相對路徑。相對路徑取決於「當前目錄」,可以通過.net登錄到Environment.CurrentDirectory

當前目錄可能會改變您的程序的生命週期。例如OpenFileDialog可以更改CurrentDirectory,從不同位置的命令提示符啓動應用程序也可以更改它。

我建議你有一個基礎目錄,然後結合你的相對路徑來生成一個絕對路徑。

string baseDirectory = ...; 
string myAbsolutePath = Path.Combine(baseDirectory , @"\notifications\Chairman\subjects.txt"); 
+0

非常感謝。我只是一個初學者,而且很有幫助! – sivavvit

+0

@sivavvit去年回答:\這裏有幾個答案。如果你的問題得到解答並且你確信答案,你應該接受幫助你的答案。 –

相關問題