如何获取应用程序目录中复制文件的路径

时间:2012-10-16 13:27:39

标签: c# resources

我在应用程序的资源中添加了一些文件。 这些文件将“复制到输出目录”属性设置为“始终复制”,因此这些文件将显示在 applicationDirectiry / Resources 目录中。

我想要的是访问这些文件。当然我可以使用以下代码:

Environment.CurrentDirectory 
 + Path.DirectorySeparatorChar
 + "Resources\ResourceFileName.xslt";

问题在于,如果我想重命名文件或 \ Resources 目录,我将不得不修改所有字符串。

编辑:例如,我的资源中有一个 MasterData.xslt 文件。构建之后,它将放在_ApplicationFolder \ Resources_目录中。该文件的路径是 ApplicationFolder \ Resources \ MasterData.xslt 。在我的代码中,我可以使用

访问该文件的内容
Resources.MasterData

有没有办法获取文件路径( ApplicationFolder \ Resources \ MasterData.xslt )而不是其内容?

2 个答案:

答案 0 :(得分:2)

当你在Build中放置文件时,该位置应被视为“魔法”常量。

只需在某处使用const string resFolder = "Resources";即可获得单点定义。

OT:并使用System.IO.Path.Combine()构建文件路径:

 string myPath = Path.Combine(Environment.CurrentDirectory, 
        resFolder, "ResourceFileName.xslt");

答案 1 :(得分:0)

如果Resources是应用程序运行时目录下的子目录,则可以执行以下操作:

string fileName = 
    System.Reflection.Assembly.GetExecutingAssembly().Location +    
    Path.DirectorySeparatorChar + 
    "Resources" + 
    Path.DirectorySeparatorChar +
    "ResourceFileName.xslt";

另请注意,我使用Path.DirectorySeparatorChar两次而不是“\”。