如何正確使用:Has和:Nth-Last-Child
我們可以用CSS檢查,以了解一組元素的數(shù)量是否小于或等于一個(gè)數(shù)字。例如,一個(gè)擁有三個(gè)或更多子項(xiàng)的grid。你可能會(huì)想,為什么需要這樣做呢?在某些情況下,一個(gè)組件或一個(gè)布局可能會(huì)
using System;using ICSharpCode.SharpZipLib.Zip;class Program{ static void Main() { string sourceFolder = @"C:/Path/To/Your/Folder"; string zipFile = @"C:/Path/To/Your/Archive.zip"; ZipDirectory(sourceFolder, zipFile); Console.WriteLine("Compression completed."); string extractFolder = @"C:/Path/To/Your/Extracted"; UnzipFile(zipFile, extractFolder); Console.WriteLine("Extraction completed."); } static void ZipDirectory(string sourceFolder, string zipFile) { using (ZipOutputStream zipStream = new ZipOutputStream(System.IO.File.Create(zipFile))) { zipStream.SetLevel(9); // 0 - store only to 9 - means best compression ZipFolder(sourceFolder, sourceFolder, zipStream); zipStream.Finish(); zipStream.Close(); } } static void ZipFolder(string rootFolder, string currentFolder, ZipOutputStream zipStream) { string[] files = System.IO.Directory.GetFiles(currentFolder); foreach (string file in files) { ZipFile(zipStream, currentFolder, file); } string[] subFolders = System.IO.Directory.GetDirectories(currentFolder); foreach (string folder in subFolders) { ZipFolder(rootFolder, folder, zipStream); } } static void ZipFile(ZipOutputStream zipStream, string rootFolder, string filePath) { byte[] buffer = new byte[4096]; string relativePath = filePath.Substring(rootFolder.Length + 1); ZipEntry entry = new ZipEntry(relativePath); zipStream.PutNextEntry(entry); using (System.IO.FileStream fs = System.IO.File.OpenRead(filePath)) { int sourceBytes; do { sourceBytes = fs.Read(buffer, 0, buffer.Length); zipStream.Write(buffer, 0, sourceBytes); } while (sourceBytes > 0); } } static void UnzipFile(string zipFile, string extractFolder) { using (ZipInputStream zipStream = new ZipInputStream(System.IO.File.OpenRead(zipFile))) { ZipEntry entry; while ((entry = zipStream.GetNextEntry()) != null) { string entryName = entry.Name; string fullZipToPath = System.IO.Path.Combine(extractFolder, entryName); string directoryName = System.IO.Path.GetDirectoryName(fullZipToPath); if (directoryName.Length > 0) { System.IO.Directory.CreateDirectory(directoryName); } if (entry.IsFile) { byte[] buffer = new byte[4096]; using (System.IO.FileStream streamWriter = System.IO.File.Create(fullZipToPath)) { int sourceBytes; do { sourceBytes = zipStream.Read(buffer, 0, buffer.Length); streamWriter.Write(buffer, 0, sourceBytes); } while (sourceBytes > 0); } } } } }}
using System;using Ionic.Zip;class Program{ static void Main() { string sourceFolder = @"C:/Path/To/Your/Folder"; string zipFile = @"C:/Path/To/Your/Archive.zip"; ZipDirectory(sourceFolder, zipFile); Console.WriteLine("Compression completed."); string extractFolder = @"C:/Path/To/Your/Extracted"; UnzipFile(zipFile, extractFolder); Console.WriteLine("Extraction completed."); } static void ZipDirectory(string sourceFolder, string zipFile) { using (ZipFile zip = new ZipFile()) { zip.AddDirectory(sourceFolder); zip.Save(zipFile); } } static void UnzipFile(string zipFile, string extractFolder) { using (ZipFile zip = ZipFile.Read(zipFile)) { zip.ExtractAll(extractFolder, ExtractExistingFileAction.OverwriteSilently); } }}
以上兩個(gè)例子都提供了基本的目錄壓縮和解壓縮功能,你可以根據(jù)具體需求進(jìn)行進(jìn)一步定制。確保在實(shí)際項(xiàng)目中進(jìn)行充分的測(cè)試和適當(dāng)?shù)腻e(cuò)誤處理。
本文鏈接:http://www.www897cc.com/showinfo-26-78147-0.html搞懂C#文件壓縮:SharpZipLib vs. DotNetZip,實(shí)用代碼一網(wǎng)打盡!
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: Go 團(tuán)隊(duì)近兩年在做什么,AI 方面如何發(fā)力?
下一篇: 行業(yè)機(jī)構(gòu) SEMI:全球 12 英寸晶圓廠設(shè)備投資 2025 年將破千億美元大關(guān)