C#-将一个*.jar文件解压缩到另一个文件中
我正试着为我自己的老式雷击机做一个雷击机发射器。我有一个问题:我需要将一个*.jar文件的内容提取到另一个。我尝试了很多东西,我完全绝望了 基本上,我需要在代码中完成 如前所述,有一些很好的.NET库用于处理zip文件。我发现它非常有用,并且有很多有用的示例 在回答您的问题时,如果您只想将一个*.jar文件的内容复制到另一个*.jar文件,并将原始内容保留在目标文件中,请尝试以下操作。我正在使用上面提到的.NET zip(它还有一个NuGet包!):C#-将一个*.jar文件解压缩到另一个文件中,c#,jar,extraction,C#,Jar,Extraction,我正试着为我自己的老式雷击机做一个雷击机发射器。我有一个问题:我需要将一个*.jar文件的内容提取到另一个。我尝试了很多东西,我完全绝望了 基本上,我需要在代码中完成 如前所述,有一些很好的.NET库用于处理zip文件。我发现它非常有用,并且有很多有用的示例 在回答您的问题时,如果您只想将一个*.jar文件的内容复制到另一个*.jar文件,并将原始内容保留在目标文件中,请尝试以下操作。我正在使用上面提到的.NET zip(它还有一个NuGet包!): 希望这有帮助 jar文件是具有不同扩展名的z
希望这有帮助 jar文件是具有不同扩展名的zip归档文件。你的问题很模糊,但我猜你想要jar文件的内容。您是否尝试过使用任何外部或部分.NET framework的zip库?您提到您已经尝试了很多东西。你能提供详细信息吗?根据你需要执行的文件操作的程度,有比代码更简单的方法。如果您只需要重新打包归档文件,只需将其放在主可执行文件旁边并调用它就更容易了。如果您想在代码中实现它,那么在.NET4.5(或者可能来自4.0?)中,对zip的支持足够好,无需额外的库即可实现。
using (ZipFile sourceZipFile = ZipFile.Read("zip1.jar"))
using (ZipFile targetZipFile = ZipFile.Read("zip2.jar"))
{
foreach (var zipItem in sourceZipFile)
{
if (!targetZipFile.ContainsEntry(zipItem.FileName))
{
using (Stream stream = new MemoryStream())
{
// Write the contents of this zip item to a stream
zipItem.Extract(stream);
stream.Position = 0;
// Now use the contents of this stream to write to the target file
targetZipFile.AddEntry(zipItem.FileName, stream);
// Save the target file. We need to do this each time before we close
// the stream
targetZipFile.Save();
}
}
}
}