码迷,mamicode.com
首页 > 其他好文 > 详细

嵌入资源第三讲:多格式文件内嵌入WPF资源文件

时间:2014-06-04 16:15:28      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

作为一个扩展,你需要了解DotNetZip用法,请参见:
C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件

你也需要了解单文件内嵌入资源文件基本方法,参见:
WPF调用嵌入的非.net的EXE资源文件

作者:一剑

如果你有一大堆文件或者想通过打包的方式嵌入任意格式的文件到资源文件中,那么你可以打包成一个ZIP文件,再嵌入到资源文件中是一个不错的选择:

bubuko.com,布布扣
using System.Reflection;//++
using System.IO;
using Ionic.Zip;

namespace packZip
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        List<string> fileList = new List<string>();   
public MainWindow() { InitializeComponent(); String projectName = Assembly.GetExecutingAssembly().GetName().Name.ToString(); using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(projectName + ".f.zip")) { Byte[] b = new Byte[stream.Length]; stream.Read(b, 0, b.Length); MemoryStream m = new MemoryStream(b); using (ZipFile zip = ZipFile.Read(m)) { zip.ExtractAll(System.IO.Path.GetTempPath(), ExtractExistingFileAction.OverwriteSilently);
                    foreach (ZipEntry entry in zip)
                    {
                        fileList.Add(entry.FileName);
                    }
} } }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {             string s = System.IO.Path.GetTempPath();
            foreach(string f in fileList)
            {
                if (File.Exists(s + f))
                    File.Delete(s + f);
            }
} } }
bubuko.com,布布扣

在这篇示例中,在程序结束时加入了ZIP中文件的遍历及清理,使得使用过后不留痕迹,把活干得漂亮点^_^。

嵌入资源第三讲:多格式文件内嵌入WPF资源文件,布布扣,bubuko.com

嵌入资源第三讲:多格式文件内嵌入WPF资源文件

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/aswordok/p/3764780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!