相对于当前文件夹运行 exe [重复]

Posted

技术标签:

【中文标题】相对于当前文件夹运行 exe [重复]【英文标题】:Run exe relative to current folder [duplicate] 【发布时间】:2017-04-11 03:35:25 【问题描述】:

我有一个包含我的 exe 的文件夹和一个名为 data 的文件夹。如何访问与当前在与 C# 中的数据文件夹相同的文件夹中打开的 exe 相关的数据文件夹?

【问题讨论】:

垃圾邮件标签有什么用?这是一个 C# 问题。无需提及任何其他标签。 能说一下目录结构吗? Path.Combine(Application.StartupPath , "data"); 【参考方案1】:

示例文件夹结构:

--ApplicationFolder
       |------> your exe
       |------> Data folder
                 |------> files inside data folder 

从相对路径获取完整路径

string applicationFolderPath =Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

string dataFolderPath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "Data");

【讨论】:

【参考方案2】:

假设你有这个层次结构:

/*  bin
       Debug
          Data
              file.txt
          App.exe
*/

如果您正在运行 App.exe 并且想要访问 file.txt,您可以使用以下方法轻松完成:

string str = System.IO.File.ReadAllText("data\\file.txt");

如果您的目标是在层级中跃升:

/*  bin
      DataBefore
           file2.txt
      Debug
           App.exe
*/

那么你可以使用:

string str = System.IO.File.ReadAllText("..\\DataBefore\\file2.txt");

【讨论】:

以上是关于相对于当前文件夹运行 exe [重复]的主要内容,如果未能解决你的问题,请参考以下文章