///<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;
}
文件夹和文件压缩
最新推荐文章于 2024-03-28 10:53:58 发布