//用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 + " 該文件夾不存在"); //如果文件夾不存在則提示 }