首页 > 学院 > 开发设计 > 正文

文件夹和文件压缩

2019-11-14 10:04:18
字体:
来源:转载
供稿:网友
        ///<summary>        ///功能:压缩文件(暂时只压缩文件夹下一级目录中的文件,文件夹及其子级被忽略)        ///</summary>        ///<paramname="dirPath">被压缩的文件夹夹路径</param>        ///<paramname="zipFilePath">生成压缩文件的路径,为空则默认与被压缩文件夹同一级目录,名称为:文件夹名+.zip</param>        ///<paramname="err">出错信息</param>        ///<returns>是否压缩成功</returns>        publicboolZipFile(string dirPath,stringzipFilePath,outstringerr)        {           err = "";            if(dirPath == string.Empty)            {               err = "要压缩的文件夹不能为空!";               return false;            }            if(!Directory.Exists(dirPath))            {               err = "要压缩的文件夹不存在!";               return false;            }            //压缩文件名为空时使用文件夹名+.zip            if(zipFilePath == string.Empty)            {               if (dirPath.EndsWith("//"))               {                   dirPath = dirPath.Substring(0, dirPath.Length - 1);               }               zipFilePath = dirPath + ".zip";            }             try            {               string[] filenames =Directory.GetFiles(dirPath);               using (ZipOutputStreams =newZipOutputStream(File.Create(zipFilePath)))               {                   s.SetLevel(9);                   byte[] buffer =newbyte[4096];                   foreach (stringfilein filenames)                   {                        ZipEntry entry =newZipEntry(Path.GetFileName(file));                        entry.DateTime = DateTime.Now;                        s.PutNextEntry(entry);                        using(FileStream fs =File.OpenRead(file))                        {                            intsourceBytes;                            do                            {                                sourceBytes =fs.Read(buffer, 0, buffer.Length);                                s.Write(buffer,0, sourceBytes);                            } while(sourceBytes > 0);                        }                   }                   s.Finish();                   s.Close();               }            }            catch(Exception ex)            {               err = ex.Message;               return false;            }            returntrue;        }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表