我正试着在一个拉链里面解压一个tar.gz,但是我不能
它显示了一个错误“找不到中央目录”,我不知道该怎么做。
首先我解压一个临时文件夹中的压缩文件,然后在该文件夹中搜索.tar.gz,然后尝试解压,但由于出现错误而崩溃,但我可以使用winrar应用程序打开它,.tar.gz中有一些文件夹和一些文件。
这是我的代码:
var trash = Path.Combine(_temporalPath, "Trash");
try
{
var zip = new FastZip();
Directory.CreateDirectory(trash);
zip.ExtractZip(_origin, trash, "");
var gzip = Directory.GetFiles(trash, "*.tar.gz")[0];
zip.ExtractZip(gzip, trash, FastZip.Overwrite.Always.ToString());
File.Delete(gzip);
}
catch (Exception)
{
//IGNORE
}
我搜索信息,但我只找到一个解压缩文件。enter image description here
我需要的是打开tar.gz并从里面拿到文件。
发布于 2016-06-30 21:27:44
最后我找到了表格。
var trash = Path.Combine(_temporalPath, "Trash");
try
{
var zip = new ICSharpCode.SharpZipLib.Zip.FastZip();
Directory.CreateDirectory(trash);
zip.ExtractZip(_origin, trash, null);
var gzip = Directory.GetFiles(trash, "*.gz")[0];
UnGzFile(gzip, Path.Combine(trash, Path.GetFileNameWithoutExtension(gzip)));
File.Delete(gzip);
var tar = Directory.GetFiles(trash, "*.tar")[0];
var stream = File.OpenRead(tar);
var tarArchive = ICSharpCode.SharpZipLib.Tar.TarArchive.CreateInputTarArchive(stream);
tarArchive.ExtractContents(trash);
tarArchive.Close();
stream.Close();
File.Delete(tar);
}
catch (Exception ex)
{
//IGNORE
}
对不起,谢谢
发布于 2018-09-06 16:42:51
using ICSharpCode.SharpZipLib.GZip;
using ICSharpCode.SharpZipLib.Tar;
public void ExtractTGZ(String gzArchiveName, String destFolder)
{
Stream inStream = File.OpenRead(gzArchiveName);
Stream gzipStream = new GZipInputStream(inStream);
TarArchive tarArchive = TarArchive.CreateInputTarArchive(gzipStream);
tarArchive.ExtractContents(destFolder);
tarArchive.Close();
gzipStream.Close();
inStream.Close();
}
发布于 2018-07-15 18:20:58
您可以简单地使用ZipFile
类来完成此操作:
File.Move(source, Path.ChangeExtension(source, ".zip"));
ZipFile.ExtractToDirectory(Path.ChangeExtension(source, ".zip"), destination);
https://stackoverflow.com/questions/38120651
复制相似问题