我正在使用一个 .NET 组件,该组件使用一种方法读取特定的二进制文件,该方法需要一个具有完整路径名的字符串,如下所示:
Read("c:\\somefile.ext");
我已将 somefile.ext 作为嵌入资源放入我的项目中。有什么方法可以将嵌入式资源的某种路径提供给组件的读取命令?
我正在使用一个 .NET 组件,该组件使用一种方法读取特定的二进制文件,该方法需要一个具有完整路径名的字符串,如下所示:
Read("c:\\somefile.ext");
我已将 somefile.ext 作为嵌入资源放入我的项目中。有什么方法可以将嵌入式资源的某种路径提供给组件的读取命令?
资源的路径格式为namespace.projectfolder.filename.ext。
为了阅读内容,您可以使用像这样的帮助类
public class ResourceReader
{
// to read the file as a Stream
public static Stream GetResourceStream(string resourceName)
{
Assembly assembly = Assembly.GetExecutingAssembly();
Stream resourceStream = assembly.GetManifestResourceStream(resourceName);
return resourceStream;
}
// to save the resource to a file
public static void CreateFileFromResource(string resourceName, string path)
{
Stream resourceStream = GetResourceStream(resourceName);
if (resourceStream != null)
{
using (Stream input = resourceStream)
{
using (Stream output = File.Create(path))
{
input.CopyTo(output);
}
}
}
}
}
您需要使用项目的命名空间以及嵌入资源的名称。例如,假设 somefile.ext 位于项目中名为 ProjectA 的文件夹资源/文件中。您应该用来读取嵌入资源的正确字符串是:
ProjectA.resources.files.somefile.ext