zoukankan      html  css  js  c++  java
  • C# zip/unzip with DotNet framework 4.5

    add reference System.IO.Compression.FileSystem

        public class ZipHelper
        {
            public static string UnZip(string inputFile)
            {
                string outDir = System.Environment.CurrentDirectory + "\executor\";
                if (UnZip(inputFile, outDir))
                    return outDir;
                else
                    return "";
            }
    
    
            public static bool UnZip(string inputFile, string outputDir)
            {
                bool result = false;
                try
                {
                    //ZipFile.ExtractToDirectory(inputFile, outputDir);
                    using (ZipInputStream s = new ZipInputStream(File.OpenRead(inputFile)))
                    {
    
                        ZipEntry theEntry;
                        while ((theEntry = s.GetNextEntry()) != null)
                        {
    
                            Console.WriteLine(theEntry.Name);
    
                            string directoryName = Path.GetDirectoryName(theEntry.Name);
                            //string directoryName = outputDir;
                            string fileName = Path.GetFileName(theEntry.Name);
    
                            // create directory
                            if (directoryName.Length > 0)
                            {
                                Directory.CreateDirectory(directoryName);
                            }
    
                            if (fileName != String.Empty)
                            {
                                using (FileStream streamWriter = File.Create(theEntry.Name))
                                {
    
                                    int size = 2048;
                                    byte[] data = new byte[2048];
                                    while (true)
                                    {
                                        size = s.Read(data, 0, data.Length);
                                        if (size > 0)
                                        {
                                            streamWriter.Write(data, 0, size);
                                            streamWriter.Close();
                                        }
                                        else
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
    
                    result = true;
                }
                catch
                {
                }
                return result;
            }
    
            //public static bool UnZip(string inputFile, string outputDir)
            //{
            //    bool result = false;
            //    try
            //    {
            //        ZipFile.ExtractToDirectory(inputFile, outputDir);
            //        result = true;
            //    }
            //    catch
            //    {
            //    }
            //    return result;
            //}
        }
  • 相关阅读:
    18. 4Sum(双指针)
    17. Letter Combinations of a Phone Number(bfs)
    16. 3Sum Closest(双指针)
    15. 3Sum(字典) (双指针)
    14. Longest Common Prefix(暴力循环)
    8. String to Integer (atoi)
    54. Spiral Matrix(剑指offer--19)
    Baidu 推荐技术平台(offer)
    134. Gas Station(数学定理依赖题)
    187. Repeated DNA Sequences(建立词典,遍历一遍 o(n))
  • 原文地址:https://www.cnblogs.com/zyip/p/3669980.html
Copyright © 2011-2022 走看看