2013-09-18 2 views
0

Я хочу сделать резервную копию моей базы данных с помощью SMO и заархивировать файл резервной копии, а затем загрузить его на свой сервер. вот мой кодУменьшить размер файла с помощью DotNetZip

  // Backup 
      var conn = new SqlConnection(sqlConnectionString); 
      var server = new Server(new ServerConnection(conn)); 
      var backupMgr = new Backup(); 
      backupMgr.Devices.AddDevice(file.FullName, DeviceType.File); 
      backupMgr.Database = dictionary[StringKeys.Database]; 
      backupMgr.Action = BackupActionType.Database; 
      backupMgr.SqlBackup(server); 

      // Compress 
      using (var zip = new ZipFile()) 
      { 
       zipFile = string.Format("{0}\\{1}.zip", directoryName, DateTime.Now.ToString("yyyyMMddHHmm")); 
       zip.AddFile(outputPath, ""); 

       zip.Save(zipFile); 
      } 

      // uploading code 

Размер резервного файла может быть более 100 МБ. Но после того, как я застегнул это, используя вышеприведенный код, он не уменьшает размер. Так что я не могу загрузить большие ZIP-файлы. Есть ли способ уменьшить размер файла с помощью DotNetZip?

ответ

1

вы можете сделать это, добавив следующую строку перед сохранением

zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; 

В качестве альтернативы вы можете обратиться к следующей ссылке для подробного ответа Compression issue with large archive of files in DotNetZip

Pl. Примечание. Библиотека имеет ограничения в сжатии файлов изображений, приведенная выше ссылка даст вам четкое представление о том, сжат ли файл или нет. Вы также можете обратиться к http://dotnetzip.herobo.com/DNZHelp/Index.html за дополнительной помощью по этой теме

+0

Большое спасибо. Оно работает. –

Смежные вопросы