最近研究vb.net但我还没弄明白如何从资源中删除图像或可执行文件。 如果我放一个图像并添加到资源,我会提取 C:\ foto.jpg 我能怎么做? 在此先感谢,我为我的vb知识道歉是英语
答案 0 :(得分:0)
您可以使用GetManifestResourceStream方法将嵌入的图像作为流获取,在缓冲区中读取此流并使用WriteAllBytes方法将其写入光盘:
Using Stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("AssemblyName.image.jpg")
Dim Buffer(Stream.Length) As Byte
Stream.Read(Buffer, 0, Buffer.Length)
File.WriteAllBytes("image.jpg", Buffer)
End Using
这适用于小文件,但是如果你的程序集中嵌入了一些非常大的文件,那么最好以块的形式读取它们以避免消耗大量内存:
Using stream As Stream = Assembly.GetExecutingAssembly.GetManifestResourceStream("AssemblyName.image.jpg")
Using fileStream As FileStream = File.Create("image.jpg")
Dim bytesRead As Integer
Dim buf As Byte() = New Byte(1023) {}
Do While (bytesRead = stream.Read(buf, 0, buf.Length) > 0)
Dim actual As Byte() = New Byte(bytesRead - 1) {}
Buffer.BlockCopy(buf, 0, actual, 0, actual.Length)
fileStream.Write(actual, 0, actual.Length)
Loop
End Using
End Using