GetManifestResourceStream() 返回 null
GetManifestResourceStream() returning null
我试图在我的应用程序的资源中嵌入一些文本文件,但是当我尝试使用 GetManifestResourceStream()
检索它时,我得到了空值。我已经尝试了所有这些名称组合:
- 程序名.Form1.foo.txt
- programName.foo.txt
- Form1.foo.txt
- programName.Properties.Resources.resources.foo.txt
一些信息:
命名空间是 programName
,我从中调用此代码的 class 是 Form1
,我尝试检索的文件名资源是 foo.txt
.
代码:
var resourceName = string.Format("???.{0}", filename);
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
该文件可以通过使用 Properties.Resources.foo
获得,但是当我从字符串中获取文件名时我无法使用它。
确保文件的构建操作是 "Embedded Resource"。
如果您的文件位于文件夹中,则必须包括文件夹的名称。
例如,如果我在我的 WindowsFormsApplication1 项目中创建一个文件夹 "xx" 并添加一个文件 "dictionary.txt",名称将为
WindowsFormsApplication1.xx.dictionary.txt
无论如何,只需使用它来查看您的所有资源
var files = Assembly.GetExecutingAssembly().GetManifestResourceNames();
我试图在我的应用程序的资源中嵌入一些文本文件,但是当我尝试使用 GetManifestResourceStream()
检索它时,我得到了空值。我已经尝试了所有这些名称组合:
- 程序名.Form1.foo.txt
- programName.foo.txt
- Form1.foo.txt
- programName.Properties.Resources.resources.foo.txt
一些信息:
命名空间是 programName
,我从中调用此代码的 class 是 Form1
,我尝试检索的文件名资源是 foo.txt
.
代码:
var resourceName = string.Format("???.{0}", filename);
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
该文件可以通过使用 Properties.Resources.foo
获得,但是当我从字符串中获取文件名时我无法使用它。
确保文件的构建操作是 "Embedded Resource"。
如果您的文件位于文件夹中,则必须包括文件夹的名称。
例如,如果我在我的 WindowsFormsApplication1 项目中创建一个文件夹 "xx" 并添加一个文件 "dictionary.txt",名称将为 WindowsFormsApplication1.xx.dictionary.txt
无论如何,只需使用它来查看您的所有资源
var files = Assembly.GetExecutingAssembly().GetManifestResourceNames();