如何获取嵌入式资源的路径?

时间:2011-08-04 13:14:31

标签: c# file resources

我在C#项目中包含了一个embebbed资源;我知道它的名字以及如何引用它,所以我想知道是否有任何方法可以获得它的绝对路径......是吗?

4 个答案:

答案 0 :(得分:5)

嵌入式资源就是:嵌入式资源。这意味着,它包含在程序集中,并且在编译后不作为物理文件存在(如果这就是您要查找的内容)。

答案 1 :(得分:2)

正如其他人所说,嵌入式资源嵌入在已编译的程序集中,并且不存在于文件系统中;如果您希望将文件放在文件系统上,则应将构建操作更改为“无”,将“复制到输出目录”更改为其中一个复制值。

但是,如果你的意思是嵌入资源,那么可以使用Assembly类的GetManifestResourceStream方法访问它,如下所示:

GetType().Assembly.GetManifestResourceStream("someresourcestringhere")

(上面的代码假设您正在从同一程序集中的类访问资源)。

嵌入式资源通常遵循以下格式(保留任何空格),这是您将传递给GetManifestResourceStream方法的字符串:

默认项目namespace.folder名称(如果有).file name

就我个人而言,我发现获取此字符串的最简单方法是使用反编译工具(例如Telerik的Just Decompile)来查看程序集内部并获取您正在查找的文件的完整资源名称。 / p>

答案 2 :(得分:1)

System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();

答案 3 :(得分:-1)

怎么样

Console.WriteLine(WindowsFormsApplication1.Properties.Resources.myfile);

其中myfile是嵌入式ini文件