我使用 DotNetZip 库进行了快速测试,该库打开了一个充满 .bmp 文件的 zip 文件并将它们转换为 .jpg 格式。
在此之前,我将所有文件写入一个文件夹,转换它们,保存 jpg 文件,然后删除原始的 bmp 文件,这很混乱。
我不想先将它们解压缩到内存中,然后转换为 jpg 然后保存。
该代码有效,但不是那么快。任何人都可以给我任何关于我可以做些什么来改进代码的指示吗?另外,线程有帮助吗?
string zipToUnpack = "c:\\test\\1000.zip";
string unpackDirectory = "c:\\temp\\";
string f = string.Empty;
Bitmap bm;
MemoryStream ms;
using (ZipFile zip = ZipFile.Read(zipToUnpack))
{
foreach (ZipEntry e in zip)
{
if (e.FileName.ToLower().IndexOf(".bmp") > 0)
{
ms = new MemoryStream();
e.Extract(ms);
try
{
bm = new Bitmap(ms);
f = unpackDirectory + e.FileName.ToLower().Replace(".bmp", ".jpg");
bm.Save(f, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception ex)
{
Console.WriteLine("File: " + e.FileName + " " + ex.ToString());
}
ms.Dispose();
}
}
}
谢谢