Beispiel #1
0
        ///    
        /// 解压文件   
        /// 解压类型   
        /// 要解压的文件   
        public void UnZip(UnzipType type, params string[] zipFile)
        {
            ZipInputStream zipStream;
            ZipEntry entry;
            for (int i = 0; i < zipFile.Length; i++)
            {
                zipStream = new ZipInputStream(File.OpenRead(zipFile[i]));

                //获取目录名,并创建该目录
                string directoryName = "";
                if (type == UnzipType.ToNewDirctory)
                    directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf("."));
                else
                    directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf("\\"));

                if (!Directory.Exists(directoryName))
                    Directory.CreateDirectory(directoryName);

                //读出每一个文件
                while ((entry = zipStream.GetNextEntry()) != null)
                {
                    //获取文件名
                    string fileName = entry.Name;
                    if (directoryName.EndsWith("\\"))
                        fileName = directoryName + fileName;
                    else
                        fileName = directoryName + "\\" + fileName;
                    if (fileName == String.Empty)
                        continue;

                    //创建一个文件
                    if (!Directory.Exists(Path.GetDirectoryName(fileName)))
                        Directory.CreateDirectory(Path.GetDirectoryName(fileName));
                    FileStream streamWriter = File.Create(fileName);

                    //写入文件
                    int size = 2048;
                    byte[] data = new byte[2048];
                    while (true)
                    {
                        size = zipStream.Read(data, 0, data.Length);
                        if (size > 0)
                        {
                            streamWriter.Write(data, 0, size);
                        }
                        else
                        {
                            break;
                        }
                    }

                    streamWriter.Close();

                }
                zipStream.Close();
            }
        }
Beispiel #2
0
        ///
        /// 解压文件
        /// 解压类型
        /// 要解压的文件
        public void UnZip(UnzipType type, params string[] zipFile)
        {
            ZipInputStream zipStream;
            ZipEntry       entry;

            for (int i = 0; i < zipFile.Length; i++)
            {
                zipStream = new ZipInputStream(File.OpenRead(zipFile[i]));

                //获取目录名,并创建该目录
                string directoryName = "";
                if (type == UnzipType.ToNewDirctory)
                {
                    directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf("."));
                }
                else
                {
                    directoryName = zipFile[i].Substring(0, zipFile[i].LastIndexOf("\\"));
                }

                if (!Directory.Exists(directoryName))
                {
                    Directory.CreateDirectory(directoryName);
                }

                //读出每一个文件
                while ((entry = zipStream.GetNextEntry()) != null)
                {
                    //获取文件名
                    string fileName = entry.Name;
                    if (directoryName.EndsWith("\\"))
                    {
                        fileName = directoryName + fileName;
                    }
                    else
                    {
                        fileName = directoryName + "\\" + fileName;
                    }
                    if (fileName == String.Empty)
                    {
                        continue;
                    }

                    //创建一个文件
                    if (!Directory.Exists(Path.GetDirectoryName(fileName)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(fileName));
                    }
                    FileStream streamWriter = File.Create(fileName);

                    //写入文件
                    int    size = 2048;
                    byte[] data = new byte[2048];
                    while (true)
                    {
                        size = zipStream.Read(data, 0, data.Length);
                        if (size > 0)
                        {
                            streamWriter.Write(data, 0, size);
                        }
                        else
                        {
                            break;
                        }
                    }

                    streamWriter.Close();
                }
                zipStream.Close();
            }
        }