相对于当前文件夹运行 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

更改当前工作目录 VS13?

LABVIEW程序打包生成exe执行文件时,参数路径变了

如何用CMD将当前文件下下面的文件复制到当前文件夹下面的文件夹!用相对路径!

执行java可执行文件(.exe)时如何获取CMD的目录[重复]

require_once 在文件相对于根目录时不起作用,但在相对于当前位置时起作用

18.文件操作