首页 > 代码库 > 嵌入资源第三讲:多格式文件内嵌入WPF资源文件
嵌入资源第三讲:多格式文件内嵌入WPF资源文件
作为一个扩展,你需要了解DotNetZip用法,请参见:
C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件
你也需要了解单文件内嵌入资源文件基本方法,参见:
WPF调用嵌入的非.net的EXE资源文件
作者:一剑
如果你有一大堆文件或者想通过打包的方式嵌入任意格式的文件到资源文件中,那么你可以打包成一个ZIP文件,再嵌入到资源文件中是一个不错的选择:
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);
} } } }
在这篇示例中,在程序结束时加入了ZIP中文件的遍历及清理,使得使用过后不留痕迹,把活干得漂亮点^_^。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。