我想解压缩.7z-Files,我是从网络服务器上下载的。我已经搜索了一个解决方案,但我只找到了必须安装7zip的地方。
是否有一种解压缩此文件的简单方法?
我已经有一个" foreach"循环遍历包含文件名的列表中的项目。
答案 0 :(得分:3)
我刚刚尝试了新的SharpCompress,如果您不关心文件类型(例如,它可以是7z / zip / rar),那就太棒了。
using (var archive = ArchiveFactory.Open(compressedFile))
{
foreach (var entry in archive.Entries)
{
if (!entry.IsDirectory)
entry.WriteToDirectory(@"C:\Temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });
}
}
答案 1 :(得分:2)
我个人对SevenZipSharp库有很好的体验。 https://sevenzipsharp.codeplex.com/
提取/解压缩的代码示例:
using (var tmp = new SevenZipExtractor(@"d:\Temp\7z465_extra.7z"))
{
for (int i = 0; i < tmp.ArchiveFileData.Count; i++)
{
tmp.ExtractFiles(@"d:\Temp\Result\", tmp.ArchiveFileData[i].Index);
}
}
只需将7zip所需的dll和此库放在您的programm文件夹中,您就可以了。因此,您不需要显式安装7zip,只需要libs。
答案 2 :(得分:0)
使用.Net core 2.2解压缩.7z文件 从nuget下载SharpCompress(0.23.0)。
static void SharpCompressEx(string sevenZPath)
{
using (Stream stream = File.OpenRead(sevenZPath))
{
using (var archive = ArchiveFactory.Open(stream))
{
foreach (var entry in archive.Entries)
{
if (!entry.IsDirectory)
entry.WriteToDirectory(@"C:\Temp", new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });
}
}
}
}