[英]How to extract a list of embedded resources from C# assembly?
我只想從我的程序集中將一些嵌入式資源或它們的列表提取到目錄中。 我使用了File.Stream
, WriteAllBytes
以及File.Copy
,但是它沒有用,它的輸出只有0個字節。 這有什么問題?
public void Main()
{
Assembly.GetExecutingAssembly().GetManifestResourceNames();
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("myNameSpace.myEmbeddedRes");
FileStream fileStream = new FileStream("e:\\new.txt", FileMode.CreateNew, FileAccess.Write);
for (int i = 0; i < stream.Length; i++)
fileStream.WriteByte((byte)stream.ReadByte());
fileStream.Close();
}
要么
private static void ExtEmbdRes(string outDir, string resLoc, List<string> files)
{
foreach (string file in files)
{
using (System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(resLoc + "." + file))
{
using (System.IO.FileStream fileStream = new System.IO.FileStream(System.IO.Path.Combine(outDir, file), System.IO.FileMode.Create))
{
for (int i = 0; i < stream.Length; i++)
{
fileStream.WriteByte((byte)stream.ReadByte());
}
fileStream.Close();
}
}
}
}
static void Main()
{
List<string> fileList = new List<string>();
{
fileList.Add("txtFile1.txt");
fileList.Add("txtFile2.txt");
fileList.Add("txtFile3.txt");
};
ExtEmbdRes("e:\\", "myNameSpace", fileList);
}
您可以使用assembly.GetManifestResourceNames()來獲取嵌入式資源的列表。 您還確定執行程序集是具有嵌入式資源的程序集嗎? 也許您正在使用類庫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.