【发布时间】:2022-10-02 01:12:14
【问题描述】:
我正在尝试创建一个 tar 存档,然后使用 SharpZipLib 将所有内容提取到一个文件中。我能够创建 tar 存档,但在尝试提取它时程序挂起。我想知道是否有其他人可以重现这个问题,看看它为什么会发生。我也尝试过使用an example that allows for full control,并且在调试时,似乎我的程序在调用tarIn.GetNextEntry() 时挂起。
这是我的代码
public void CreateTarAndExtract()
{
// create tar file
string tarFile = \"path_to_desktop\\\\tartest.tar\";
string inputFolder = \"path_to_desktop\\\\testfolder\";
using (var output = File.OpenWrite(tarFile))
{
using (var archive = TarArchive.CreateOutputTarArchive(output, Encoding.UTF8))
{
var trimLength = inputFolder.Length + 1;
foreach (var fsEntry in Directory.GetFileSystemEntries(inputFolder, \"*\", SearchOption.AllDirectories))
{
var entry = TarEntry.CreateEntryFromFile(fsEntry);
entry.Name = fsEntry.Substring(trimLength);
archive.WriteEntry(entry, false);
}
}
}
// extract file
string outputPath = \"path_to_desktop\\\\tartest\";
using (var input = File.OpenRead(tarFile))
{
using (var archive = TarArchive.CreateInputTarArchive(input, Encoding.UTF8))
{
archive.ExtractContents(outputPath);
}
}
}
-
我复制了您的代码,结果完全相同,应用程序冻结,我正在尝试解决问题
-
仅供参考:.NET 7 在 System.Formats.Tar 命名空间中提供与 tar 相关的功能。尽管 .NET 7 还没有最终版本,但如果您有兴趣尝试 System.Formats.Tar 的东西,则可以使用候选版本...
标签: c# .net tar sharpziplib