खोज…


वाक्य - विन्यास

  1. सार्वजनिक स्थैतिक ZipArchive OpenRead (स्ट्रिंग संग्रहफलनाम)

पैरामीटर

पैरामीटर विवरण
archiveFileName संग्रह के लिए रास्ता खोलने के लिए, एक रिश्तेदार या निरपेक्ष पथ के रूप में निर्दिष्ट। वर्तमान कार्य निर्देशिका के सापेक्ष एक सापेक्ष पथ की व्याख्या की जाती है।

ज़िप फ़ाइल में लिखना

एक नई .zip फ़ाइल लिखने के लिए:

System.IO.Compression
System.IO.Compression.FileSystem

using (FileStream zipToOpen = new FileStream(@"C:\temp", FileMode.Open)) 
{
    using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update)) 
    {
        ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
        using (StreamWriter writer = new StreamWriter(readmeEntry.Open())) 
        {
            writer.WriteLine("Information about this package.");
            writer.WriteLine("========================");
        }
    }
}

मेमोरी में जिप फाइल लिखना

निम्नलिखित उदाहरण फ़ाइल सिस्टम तक पहुँच की आवश्यकता के बिना, एक प्रदान की गई फ़ाइल के byte[] डेटा को उसमें प्रदान की गई फ़ाइलों को वापस कर देगा।

public static byte[] ZipFiles(Dictionary<string, byte[]> files)
{
    using (MemoryStream ms = new MemoryStream())
    {
        using (ZipArchive archive = new ZipArchive(ms, ZipArchiveMode.Update))
        {
            foreach (var file in files)
            {
                ZipArchiveEntry orderEntry = archive.CreateEntry(file.Key); //create a file with this name
                using (BinaryWriter writer = new BinaryWriter(orderEntry.Open()))
                {
                    writer.Write(file.Value); //write the binary data
                }
            }
        }
        //ZipArchive must be disposed before the MemoryStream has data
        return ms.ToArray();
    }
}

एक ज़िप फ़ाइल से फ़ाइलें प्राप्त करें

यह उदाहरण प्रदान किए गए ज़िप संग्रह बाइनरी डेटा से फ़ाइलों की एक सूची प्राप्त करता है:

public static Dictionary<string, byte[]> GetFiles(byte[] zippedFile) 
{
    using (MemoryStream ms = new MemoryStream(zippedFile))
    using (ZipArchive archive = new ZipArchive(ms, ZipArchiveMode.Read)) 
    {
        return archive.Entries.ToDictionary(x => x.FullName, x => ReadStream(x.Open()));
    }
}

private static byte[] ReadStream(Stream stream) 
{
    using (var ms = new MemoryStream()) 
    {
        stream.CopyTo(ms);
        return ms.ToArray();
    }
}

निम्न उदाहरण दिखाता है कि ज़िप संग्रह कैसे खोलें और सभी .txt फ़ाइलों को एक फ़ोल्डर में निकालें

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\example\start.zip";
            string extractPath = @"c:\example\extract";

            using (ZipArchive archive = ZipFile.OpenRead(zipPath))
            {
                foreach (ZipArchiveEntry entry in archive.Entries)
                {
                    if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase))
                    {
                        entry.ExtractToFile(Path.Combine(extractPath, entry.FullName));
                    }
                }
            } 
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow