Jon*_*han 8 c# compression zip
我有一个由XML数据组成的DataSet,我可以轻松地将其输出到一个文件:
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds.Tables.Add(dt);
ds.Load(reader, LoadOption.PreserveChanges, ds.Tables[0]);
ds.WriteXml("C:\\test.xml");
Run Code Online (Sandbox Code Playgroud)
但是,我想要做的是将XML压缩为ZIP或其他类型的压缩文件,然后将此文件保存到磁盘,同时将ZIP文件拆分为1MB块.我真的不想保存未压缩的文件,然后压缩它,然后拆分它.
我特别想要的是:
Mat*_*ton 10
我已经设法使用.NET 2.0的gzip压缩来压缩DataSet的XML流.
这是我几年前写的关于它的博客文章:
...这里是我添加到我的DataSet的部分类中以编写压缩文件的代码(博客帖子也有读取代码):
public void WriteFile(string fileName)
{
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
Stream s;
if (Path.GetExtension(fileName) == ".cmx")
{
s = new GZipStream(fs, CompressionMode.Compress);
}
else if (Path.GetExtension(fileName) == ".cmz")
{
s = new DeflateStream(fs, CompressionMode.Compress);
}
else
{
s = fs;
}
WriteXml(s);
s.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,此代码根据文件的扩展名使用不同的压缩方案.这纯粹是因为我可以使用我的DataSet测试另一个方案.
归档时间: |
|
查看次数: |
7829 次 |
最近记录: |