查找文件的路径

时间:2012-02-02 12:36:49

标签: c# visual-studio file path

我正在开发一个C#Visual Studio应用程序,我正在使用config.txt文件。但是当应用程序安装在另一台机器上时,我如何找到config.txt文件路径,同时考虑到用户将在自定义路径(C:\ Folder X)上安装应用程序?

3 个答案:

答案 0 :(得分:2)

如果配置文件与可执行文件位于同一目录中,则可以使用:

string exePath = Assembly.GetExecutingAssembly().Location;
string configFileName = "config.txt";

string configFilePath = Path.Combine(Path.GetDirectoryName(exePath), configFileName);

编辑:

GetExecutingAssembly()应返回路径C:\Program Files\MyAddIn\your_plugin.dll,因为它返回调用它的已加载程序集的实际路径。

由于情况并非如此,我们可以猜测MS Project实际上是在将dll复制到本地(也许是临时)目录之前加载它(....\AppData\Local\Assembly\...路径)。

由于我不知道为什么 如何 MS Project这样做,我认为最安全的方法是存储您的位置Addin文件夹安装到注册表中。如果您将其作为MSI发送,则应该很容易让安装程序添加包含插件文件位置的注册表项。如何做到这将取决于你如何构建你的MSI:vdproj?维克斯?

然后在你的插件的代码中,你可以读入注册表来获取你的路径。

答案 1 :(得分:0)

而不是使用文本文件,您可以使用.net设置来存储此应用的设置。

可以看到更多信息here

答案 2 :(得分:0)

如果配置文件与应用程序位于同一文件夹中,则可以使用Assembly.GetExecutingAssembly().Location