0

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

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

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

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

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

Resources.MasterData

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

4

2 回答 2

2

当您在构建期间将文件放在那里时,该位置应被视为“神奇”常量。

只需在const string resFolder = "Resources";某个地方使用,以便您有一个单点定义。

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

 string myPath = Path.Combine(Environment.CurrentDirectory, 
        resFolder, "ResourceFileName.xslt");
于 2012-10-16T13:30:04.490 回答
0

如果 Resources 是应用程序运行时目录下的子目录,则可以这样做:

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

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

于 2012-10-16T13:36:40.623 回答