VB.NET帮助资源

时间:2010-04-25 15:55:15

标签: vb.net

最近研究vb.net但我还没弄明白如何从资源中删除图像或可执行文件。 如果我放一个图像并添加到资源,我会提取 C:\ foto.jpg 我能怎么做? 在此先感谢,我为我的vb知识道歉是英语

1 个答案:

答案 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