Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用Ionic.zip.ZipFile保存到磁盘之前获取zip文件的大小?_C#_Zip_Zipfile - Fatal编程技术网

C# 如何在使用Ionic.zip.ZipFile保存到磁盘之前获取zip文件的大小?

C# 如何在使用Ionic.zip.ZipFile保存到磁盘之前获取zip文件的大小?,c#,zip,zipfile,C#,Zip,Zipfile,我正在使用Ionic.Zip.ZipFile。我想创建10 mb的Zip文件。在保存到磁盘之前,我需要获得ZipFile的大小。可以吗 private static string tempPath = "@Temp Folder"; List<string> fileNames = new List<string>(); using (Ionic.Zip.ZipFile zf = new Ionic.Zip.ZipFile()) {

我正在使用Ionic.Zip.ZipFile。我想创建10 mb的Zip文件。在保存到磁盘之前,我需要获得ZipFile的大小。可以吗

    private static string tempPath = "@Temp Folder";
    List<string> fileNames = new List<string>();


    using (Ionic.Zip.ZipFile zf = new Ionic.Zip.ZipFile())
    {
      for (int i = 0; i < fileNames.Count; i++)
      {
        zf.AddFile(tempPath + fileNames[i], string.Empty);

        //How can I get size of zf before save here ?

      if(zf size==10mb)
      {

       zf.Save(tempPath + string.Format("{0}-{1}-{2}.zip","XXX", "XXX", 
          DateTime.Now.ToString("yyyyMMdd")));
      }

     }
   }
private静态字符串tempPath=“@Temp Folder”;
列表文件名=新列表();
使用(Ionic.Zip.ZipFile zf=new-Ionic.Zip.ZipFile())
{
对于(int i=0;i
您可以将邮政编码保存到
内存流中

var ms = new MemoryStream();
zip.Save(ms);
然后,阅读图片并获得尺寸

如果仍要将其保存到磁盘,只需使用已有的内存流即可:

FileStream file = new FileStream("file.zip", FileMode.Create, FileAccess.Write);
// I believe you'll need to rewind the stream before saving
ms.Seek(0, SeekOrigin.Begin); 
ms.WriteTo(file);
file.Close();
ms.Close();

它几乎永远不会是
==10mb
。您必须指定允许的不足或过度程度。所需的解决方案并不完全清楚,是否要停止写入或创建多个zip文件?@HenkHolterman我的临时文件夹中有10000个pdf文件。我想从该文件夹创建多个zip文件。zip文件的最大大小为10 mb。