我在应用程序的资源中添加了一些文件。 这些文件将“复制到输出目录”属性设置为“始终复制”,因此这些文件将显示在 applicationDirectiry / Resources 目录中。
我想要的是访问这些文件。当然我可以使用以下代码:
Environment.CurrentDirectory
+ Path.DirectorySeparatorChar
+ "Resources\ResourceFileName.xslt";
问题在于,如果我想重命名文件或 \ Resources 目录,我将不得不修改所有字符串。
编辑:例如,我的资源中有一个 MasterData.xslt 文件。构建之后,它将放在_ApplicationFolder \ Resources_目录中。该文件的路径是 ApplicationFolder \ Resources \ MasterData.xslt 。在我的代码中,我可以使用
访问该文件的内容Resources.MasterData
有没有办法获取文件路径( ApplicationFolder \ Resources \ MasterData.xslt )而不是其内容?
答案 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两次而不是“\”。