如何为项目路径分配一个字母?

时间:2014-04-19 06:39:26

标签: c# path tilde

而不是每次都这样做

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

只需要这样做:

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

每当我更改项目驱动器时,波形符〜必须自动获取项目路径。

2 个答案:

答案 0 :(得分: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"));

答案 1 :(得分:0)

不要依赖相对路径。相对路径取决于“当前目录”,可以通过Environment.CurrentDirectory在.net中检索。

当前目录可能会在程序的生命周期内发生变化。例如,OpenFileDialog可以更改CurrentDirectory,从命令提示符启动应用程序时,不同的位置也可以更改它。

我建议您拥有一个基本目录,然后组合您的相对路径以生成绝对路径。

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