【问题标题】:How do I get the path/address of a folder within the program solution? (C#)如何获取程序解决方案中文件夹的路径/地址? (C#)
【发布时间】:2019-06-23 20:04:00
【问题描述】:

我正在尝试获取我在项目解决方案中创建的名为“模板”的文件夹的路径。我的程序叫做 CalculationScheduler。

我试过了:

AppDomain.CurrentDomain.BaseDirectory 

但这给了我以下路径:

C:\Users\username\source\repos\AppName\AppName\bin\Debug\

我想要的是:

C:\Users\username\source\repos\AppName\AppName\Template

我也试过了:

Path.Combine(baseDirectory, @"..\..\Template");

我认为通过使用 ..\ ..\ 返回两个文件夹会起作用,但似乎不行。 请记住,如果安装在另一台计算机上,此程序也必须工作。

【问题讨论】:

  • 您不应引用解决方案/项目中的文件。此路径与您的 Excutable 及其资源无关。部署时,该路径将不存在。您可以改为在解决方案资源管理器中选择该文件夹中的所有文件并设置Build Action -> ContentCopy to Output Directory -> Copy if newer。当您构建项目/解决方案时,文件将在必要时复制到调试或发布文件夹。这样,即使在 AppDomain.CurrentDomain.BaseDirectory\Template 中部署应用程序时,您也能找到它们
  • 感谢您的提醒,我会试试看

标签: c# path directory subdirectory


【解决方案1】:

你可以试试下面的方法

Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(Environment.CurrentDirectory).FullName).FullName).FullName, "Template")

【讨论】:

    【解决方案2】:

    最好的方法可能是在 Visual Studio 中使用Post Build Events,一个像下面这样的简单状态应该允许你将你的旧版本复制到输出目录

    XCOPY "$(SolutionDir)\Template" "$(TargetDir)\Template\" /S /Y
    

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多