0

我需要做这样的事情:

    StreamReader reader = 
new System.IO.StreamReader(@"C:\Program Files\The Awesome Program That I Made\awesomeloadablefile.ldf");

除了我不知道用户在哪里安装了程序。我的程序应该如何知道已安装文件的位置?

我是菜鸟,以防你没有注意到。

4

6 回答 6

3

您可以使用Assembly.GetEntryAssembly().Location获取可执行文件在磁盘上的路径,Path.GetDirectoryName获取它所在的目录,然后Path.Combine将目录名称与您在该目录中的文件名结合起来。所以:

StreamReader reader = new System.IO.StreamReader(Path.Combine(
    Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), 
    "awesomeloadablefile.ldf"));
于 2010-07-07T13:20:57.167 回答
1

尝试这样的事情。

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

于 2010-07-07T13:18:17.320 回答
0

类似的东西Assembly.GetExecutingAssembly().Location应该可以工作。

于 2010-07-07T13:18:55.823 回答
0

你可以试试这个:

 File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "awesomeloadablefile.txt"); 
于 2010-07-07T13:19:29.773 回答
0

假设您知道与可执行文件相关的目录结构,您可以使用Application.StartupPath

string path = Path.Combine(Application.StartupPath, "awesomeloadablefile.ldf");
StreamReader reader = new System.IO.StreamReader(path);
于 2010-07-07T13:21:07.587 回答
0

这将为您提供 exe 目录的路径。我假设那是您决定放置文件的地方。否则,您可以在安装程序中为其指定一个有位置。您使用的是 Visual Studio 安装程序吗?

Application.StartupPath
于 2010-07-07T13:22:07.493 回答