GPX*_*GPX 9 c# embedded-resource
我有一个INF文件保存为我的C#项目中的嵌入式资源.我试图按需将此文件保存到本地位置.我正在使用这种方法.
public static void SaveResourceToDisk(string ResourceName, string FileToExtractTo)
{
Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(ResourceName);
FileStream resourceFile = new FileStream(FileToExtractTo, FileMode.Create);
byte[] b = new byte[s.Length + 1];
s.Read(b, 0, Convert.ToInt32(s.Length));
resourceFile.Write(b, 0, Convert.ToInt32(b.Length - 1));
resourceFile.Flush();
resourceFile.Close();
resourceFile = null;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试调用此方法(传递资源名称和命名空间名称)时,我收到错误:
你调用的对象是空的
我在这做错了什么?
你可以打电话
System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
Run Code Online (Sandbox Code Playgroud)
并检查哪些嵌入式资源是可访问的.然后你可以将它与你传入的内容进行比较,看看你是否确实完成了你的预期.
此外,您应该考虑使用using关键字来处理您的流:
using(FileStream ResourceFile = new FileStream(FileToExtractTo, FileMode.Create))
{
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
祝好运.
这是保存嵌入资源的最简单方法:
var stream = assembly.GetManifestResourceStream("name of the manifest resourse");
var fileStream = File.Create(@"C:\Test.xml");
stream.Seek(0, SeekOrigin.Begin);
stream.CopyTo(fileStream);
fileStream.Close();
Run Code Online (Sandbox Code Playgroud)