欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 用户选择单个压缩-系统自带压缩

程序员文章站 2024-01-30 10:11:04
//用C#自带的压缩,最少要.net4.5或以上,先增加引用 System.IO.Compression.FileSystem // FolderBrowserDialog dlg = new FolderBrowserDialog(); //压缩目录 显示一个标准选择文件夹对话框 OpenFile ......
            //用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.