C#如何解压gz文件
答案:1 悬赏:80 手机版
解决时间 2021-03-04 11:12
- 提问者网友:谁的错
- 2021-03-03 15:52
C#如何解压gz文件
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-03-03 16:10
//zipfilename是.gz所在路径,unzipfilename是解压文件的文件名
private void UnGzipFile(string zipfilename, string unzipfilename)
{
string dir = "";
//解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹
if (dir == "")
dir = zipfilename.Replace(Path.GetFileName(zipfilename), Path.GetFileNameWithoutExtension(zipfilename));
if (!dir.EndsWith("//"))
dir += "//";
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
//创建压缩文件的输入流实例
using (GZipInputStream zipFile = new GZipInputStream(File.OpenRead(zipfilename)))
{
//创建目标文件的流
using (FileStream destFile = File.Open(dir+ unzipfilename, FileMode.Create))
{
int buffersize = 2048;//缓冲区的尺寸,一般是2048的倍数
byte[] FileData = new byte[buffersize];//创建缓冲数据
while (buffersize > 0)//一直读取到文件末尾
{
buffersize = zipFile.Read(FileData, 0, buffersize);//读取压缩文件数据
destFile.Write(FileData, 0, buffersize);//写入目标文件
}
}
}
}
private void UnGzipFile(string zipfilename, string unzipfilename)
{
string dir = "";
//解压文件夹为空时默认与压缩文件同一级目录下,跟压缩文件同名的文件夹
if (dir == "")
dir = zipfilename.Replace(Path.GetFileName(zipfilename), Path.GetFileNameWithoutExtension(zipfilename));
if (!dir.EndsWith("//"))
dir += "//";
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
//创建压缩文件的输入流实例
using (GZipInputStream zipFile = new GZipInputStream(File.OpenRead(zipfilename)))
{
//创建目标文件的流
using (FileStream destFile = File.Open(dir+ unzipfilename, FileMode.Create))
{
int buffersize = 2048;//缓冲区的尺寸,一般是2048的倍数
byte[] FileData = new byte[buffersize];//创建缓冲数据
while (buffersize > 0)//一直读取到文件末尾
{
buffersize = zipFile.Read(FileData, 0, buffersize);//读取压缩文件数据
destFile.Write(FileData, 0, buffersize);//写入目标文件
}
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯