//用C#自带的压缩,最少要.net4.5或以上,先增加引用  System.IO.Compression.FileSystem
// FolderBrowserDialog dlg = new FolderBrowserDialog(); //压缩目录------显示一个标准选择文件夹对话框
OpenFileDialog dlg = new OpenFileDialog(); //显示一个标准选择文件对话框
DialogResult result = dlg.ShowDialog(); //返回对话框的值 选择值 if (result==DialogResult.OK) //如果用户在对话框选择了文件夹或文件
{
string zipPath = System.IO.Path.GetDirectoryName(dlg.FileName); //返回指定的路径
string abc = zipPath + "\\"+System.IO.Path.GetFileNameWithoutExtension(dlg.FileName); //abc=于当前目录+文件名(不包含扩展号)
System.IO.Directory.CreateDirectory(abc); //创建临时文件夹
System.IO.File.Copy(dlg.FileName, abc + "\\" + dlg.SafeFileName); //复制选择的文件
System.IO.Compression.ZipFile.CreateFromDirectory(abc, abc + ".zip"); //压 缩文件到用户选择文件的目录里 DeleteFolder( abc); //删除临时文件夹
System.Diagnostics.Process.Start("explorer.exe", zipPath); // 启动由包含进程启动信息 void DeleteFolder(string dir) //创建删除文件夹和里面的文件的方法
{
if (System.IO.Directory.Exists(dir)) //如果存在这个文件夹删除之
{
foreach (string d in System.IO.Directory.GetFileSystemEntries(dir))
{
if (System.IO.File.Exists(d))
System.IO.File.Delete(d); //直接删除其中的文件
else
DeleteFolder(d); //递归删除子文件夹
}
System.IO.Directory.Delete(dir); //删除已空文件夹
MessageBox.Show(dir + " 文件夹删除成功");
}
else
MessageBox.Show(dir + " 该文件夹不存在"); //如果文件夹不存在则提示
}
  1.   

C# 用户选择单个压缩-系统自带压缩的更多相关文章

  1. HFun.快速开发平台(三)=》通用系统用户选择

    系统中用户的选择使用特别多,将该功能统一实现可提升系统效率. 用户的选择实现相对简单,系统中基本都会提供,HFun.快速开发平台中的实现特点主要有: 1.用户的选择分为单用户选择和多用户选择. 2.用 ...

  2. 大数据之路week05--day01(JDBC 初识之实现一个系统 实现用户选择增删改查 未优化版本)

    要求,实现用户选择增删改查. 给出mysql文件,朋友们可以自己运行导入到自己的数据库中: /* Navicat MySQL Data Transfer Source Server : mysql S ...

  3. 用户管理 之 Linux 系统中的超级权限的控制

    在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户. 在系统中,每个文件.目录和进程,都归属于某一个用户 ...

  4. Android6.0动态申请权限那些坑--以及避免用户选择不再提示后无法获取权限的问题

    Android 6.0 为了保护用户隐私,将一些权限的申请放在了应用运行的时候去申请, 比如以往的开发中,开发人员只需要将需要的权限在清单文件中配置即可,安装后用户可以在设置中的应用信息中看到:XX应 ...

  5. Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计

    在上篇总结随笔<Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用>介绍了权限管理模块的用户管理部分,其中主要介绍了其中的用户所属公司 ...

  6. 【百度地图API】让用户选择起点和终点的驾车导航

    原文:[百度地图API]让用户选择起点和终点的驾车导航 摘要: 如果用户搜索“从机场到火车站”,使用驾车导航DrivingRoute会默认显示一条结果.但同一个城市可能有多个机场和火车站,那么,如何用 ...

  7. Django用户登录与注册系统

    一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...

  8. ASP.NET Core 3.0 一个 jwt 的轻量角色/用户、单个API控制的授权认证库

    目录 说明 一.定义角色.API.用户 二.添加自定义事件 三.注入授权服务和中间件 三.如何设置API的授权 四.添加登录颁发 Token 五.部分说明 六.验证 说明 ASP.NET Core 3 ...

  9. 自定义Vue&Element组件,实现用户选择和显示

    在我们很多前端业务开发中,往往为了方便,都需要自定义一些用户组件,一个是减少单一页面的代码,提高维护效率:二个也是方便重用.本篇随笔介绍在任务管理操作中,使用自定义Vue&Element组件, ...

随机推荐

  1. MySQL中varchar与char区别

    MySQL中varchar与char区别(转) MySQL中varchar最大长度是多少? 一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字 ...

  2. linux-ubuntu 下R无法安装HH包的原因及解决方案

    错误信息: configure: error: GNU MP not found, or not 4.1.4 or up, see http://gmplib.org ERROR: configura ...

  3. 实现SQL express版做自动备份数据库的方法

    SQL Server 2005/2008 Express版没有代理组件,不支持维护计划.可以采用下面的办法实现每日备份: 一.在要备份的数据库中创建存储过程. 存储过程名称:sp_BackupData ...

  4. flask在其他文件中添加路由

    应用文件为:app.py from flask import Flask app = Flask(__name__) @app.route("/") def hello(): re ...

  5. Alpha 冲刺 (3/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 协助后端界面的开发 搭建项目运行的服务器环境 ...

  6. Centos7 yum install vim 出现“could not retrieve mirrorlist”

    ps:来源 https://www.cnblogs.com/justphp/p/5959655.html 办法一:改dns解析 vim /etc/resolv.conf 添加: nameserver ...

  7. MySQL批量修改表前缀

    error_reporting(0); $old_pre = 'tdr_'; // 原表前缀 $new_pre = 'db_'; // 新表前缀 // 配置连接 $db = new mysqli('1 ...

  8. BUG YII2.0 $ is not defined

    来源:https://www.cnblogs.com/attitudeY/p/6279985.html BUG描述:$ is not defined 没有加载jquery成功 原因:Yii2.0将JS ...

  9. tp5中代替tp3.2中的一些方法

    U方法 U方法是TP中的生成路由的内置方法,现在这个方法可以完全使用url方法替换 I方法 之前的TP有个I方法用来接收请求参数,目前可以使用input方法替代 C方法 c方法被config方法代替

  10. JSON转JS对象,JS对象转JSON

    一.从服务端发来的json字符串,怎么才能作为JavaScript对象(JSON对象)在web端调用呢? 1.如果使用jQuery,就很方便了,可以在ajax一系列函数中,把参数Datatype传js ...