Win8 metro Zip
来源:互联网 发布:sql怎么统计班级人数 编辑:程序博客网 时间:2024/05/29 04:03
public class ZipHelper { public async static Task CreateFromFolder(StorageFolder sourceFolder, StorageFile destinationFile, bool removeSourceFolder = true) { using (var fileStream = await destinationFile.OpenAsync(FileAccessMode.ReadWrite)) { using (var zipArchive = new ZipArchive(fileStream.AsStreamForWrite(), ZipArchiveMode.Update)) {await ZipFolder(sourceFolder, zipArchive, sourceFolder.Path); if (removeSourceFolder) { await sourceFolder.DeleteAsync(); } } } } public async static Task ExtractToFolder(StorageFile sourceFile, StorageFolder destinationFolder) { using (var zipStream = (await sourceFile.OpenReadAsync()).AsStreamForRead()) { using (var zipArchive = new ZipArchive(zipStream, ZipArchiveMode.Read)) {foreach (var entry in zipArchive.Entries.Where(entry => !string.IsNullOrEmpty(entry.Name))) { using (var fileData = entry.Open()) { var outputFile = await destinationFolder.CreateFileAsync(entry.FullName, CreationCollisionOption.ReplaceExisting); using (var outputFileStream = await outputFile.OpenStreamForWriteAsync()) { await fileData.CopyToAsync(outputFileStream); await fileData.FlushAsync(); } }} } } } private async static Task ZipFolder(StorageFolder sourceFolder, ZipArchive zipArchive, string baseDirPath) { var files = await sourceFolder.GetFilesAsync(); foreach (var file in files) { var fileEntry = zipArchive.CreateEntry(GetCompressedFileName(baseDirPath, file)); var buffer = (await FileIO.ReadBufferAsync(file)).ToArray(); using (var entryStream = fileEntry.Open()) { await entryStream.WriteAsync(buffer, 0, buffer.Length); } } var subFolders = await sourceFolder.GetFoldersAsync(); if (!subFolders.Any()) return; foreach (var folder in subFolders) { await ZipFolder(folder, zipArchive,baseDirPath); } } private static string GetCompressedFileName(string baseDirPath, StorageFile file) { return file.Path.Remove(0, baseDirPath.Length); }}
抄自这里,略做修改
- Win8 metro Zip
- win8 metro
- win8 metro
- Win8的Metro界面
- win8 metro MediaCapture 类
- 我看Win8 Metro C++
- ICON下载,Win8,Metro风格
- win8 metro grid hide overflow
- win8下metro风格应用程序的生命周期
- win8 & metro style app 学习资源
- win8,Metro试用,连连看游戏
- 解决Win8 Metro应用闪退
- Win8 Metro 文件的读写操作
- 未雨绸缪,Win8 Metro开发实例分享
- 【win8系统metro界面鼠标操控方法】
- win8 metro 时间日期选择控件
- win8 metro设置webview背景色
- Win8 metro RichEditBox Document Selection ForegroundColor
- Sixth calibration example - Combining two independent calibrations of the same camera
- JS实现商品倒计时
- EWS 基于B/S模式的视窗平台 打造最佳用户体验及最佳性价比
- 禁止文件被蜘蛛程序查看的说明
- 可停靠窗口
- Win8 metro Zip
- C++著名程序库的比较和学习经验
- DRM标准学习笔记1
- Ubuntu13.04安装CUDA5.0
- C/C++ 宏中的 单/双井号 ( # and ## )
- 发送邮件
- 修改oracle用户密码
- 如何调试makefile变量
- 动态规划之——装配线调度