如何使用C#.NET 4.5将文件从ZIP归档文件读取到内存,而不首先将其解压缩到文件?
.NET Framework 4.5通过如何使用C#.NET 4.5将文件从ZIP归档文件读取到内存,而不首先将其解压缩到文件?,c#,.net,zip,archive,C#,.net,Zip,Archive,.NET Framework 4.5通过System.IO.Compression中的类添加了对ZIP文件的支持 假设我有.ZIP归档文件,它的根目录中有sample.xml文件。我想将这个文件直接从归档文件读取到内存流,然后将其反序列化到自定义.NET对象。执行此操作的最佳方法是什么?改编自和手册页面 ZipArchiveEntry类有一个Open()方法,该方法将流返回到文件 string zipPath = @"c:\example\start.zip"; using (ZipArchi
System.IO.Compression
中的类添加了对ZIP文件的支持
假设我有.ZIP归档文件,它的根目录中有sample.xml
文件。我想将这个文件直接从归档文件读取到内存流,然后将其反序列化到自定义.NET对象。执行此操作的最佳方法是什么?改编自和手册页面
ZipArchiveEntry
类有一个Open()
方法,该方法将流返回到文件
string zipPath = @"c:\example\start.zip";
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
var sample = archive.GetEntry("sample.xml");
if (sample != null)
{
using (var zipEntryStream = sample.Open())
{
XmlSerializer serializer = new XmlSerializer(typeof(SampleClass));
SampleClass deserialized =
(SampleClass)serializer.Deserialize(zipEntryStream);
}
}
}
注意,为了使用ZipFile
类,您需要添加对.NET程序集System.IO.Compression.FileSystem
的引用