protected static string path()
{
string str3 = Directory.GetCurrentDirectory();
string[] sArr = str3.Split('b');
return sArr[0] + "zip\\";
}
public SetZip()
{
//删除目标文件夹下的所有txt文件
DeleteFile(path());
}
public static void DeleteFile(string dirRoot)
{
try
{
string[] rootDirs = Directory.GetDirectories(dirRoot); //当前目录的子目录:
string[] rootFiles = Directory.GetFiles(dirRoot); //当前目录下的文件:
foreach (string s2 in rootFiles)
{
File.Delete(s2); //删除文件
}
foreach (string s1 in rootDirs)
{
DeleteFile(s1);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}
/// <summary>
/// 将原文件的压缩到指定目录下并命名为指定文件名
/// </summary>
/// <param name="sourceFiles">源文件的存储地址集合</param>
/// <param name="zipFolderPath">压缩文件的输出目录</param>
/// <param name="zipFileName">压缩文件的文件名称</param>
public void GetZipFromFiles(List<string> sourceFiles, string zipFolderPath, string zipFileName)
{
zipFolderPath = zipFolderPath + @"/" + zipFileName + ".zip";
FileStream ZipFileStream = File.Create(zipFolderPath);
ZipOutputStream ZipOutStream = new ZipOutputStream(ZipFileStream);
sourceFiles.ForEach(e =>
{
FileStream myFileStream = File.OpenRead(e);
byte[] ByteBuffer = new byte[myFileStream.Length];
myFileStream.Read(ByteBuffer, 0, ByteBuffer.Length);
myFileStream.Close();
ZipEntry ZipFileEntry = new ZipEntry(Path.GetFileName(e));
ZipOutStream.PutNextEntry(ZipFileEntry);
ZipOutStream.SetLevel(6);
ZipOutStream.Write(ByteBuffer, 0, ByteBuffer.Length);
});
ZipOutStream.Finish();
ZipOutStream.Close();
}
}
本文介绍了一个使用C#实现的文件压缩和解压功能。该方法首先获取当前目录,并从中筛选出特定类型的文件进行压缩,同时提供了解压功能。压缩过程中可以指定输出目录及压缩后的文件名。

被折叠的 条评论
为什么被折叠?



