как заархивировать файл с помощью ионной библиотеки - PullRequest
4 голосов
/ 10 октября 2011

Я сделал это для резервного копирования моей базы данных работает нормально ....

    private void backupDatabase()
    {

        txtbackup.AppendText("Starting Backup...");    
        Process sd = null;
        const  string backupcmd = @"C:\wamp\www\access\mysqldump.exe";
        string filepath = @"C:\folder\Access\";
        string dbHost = "local";
        string dbuser = "root";
        string dbName = "access";
        string backupName = "Backup.sql";
        ProcessStartInfo r1 = new ProcessStartInfo(backupcmd, string.Format("-h {0} -u {1} {2} -r {3}", dbHost, dbuser, dbName, backupName));


        r1.CreateNoWindow = true;
        r1.WorkingDirectory = filepath;
        r1.UseShellExecute = false;
        r1.WindowStyle = ProcessWindowStyle.Minimized;
        r1.RedirectStandardInput = false;

        sd = Process.Start(r1);
         sd.WaitForExit();

        if (!sd.HasExited)
        {
             sd.Close();
        }
        sd.Dispose();
        r1 = null;
        sd = null;
        txtbackup.Clear();
        txtbackup.AppendText("Backup is Finished");

    } 

работает нормально ... но я хочу сохранить backup.sql в виде zip-файла по этому пути

@"C:\folder\Access\";

У меня есть библиотека Ionic.Zip.Reduced, но я не знаю, как заархивировать файл и сохранить его по указанному пути ....

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

Библиотека довольно проста в использовании:

using (var zip = new ZipFile())
{
    zip.AddFile("Backup.sql");

    zip.Save(@"C:\folder\Access\"Backup.zip");
}

И даже их домашняя страница содержит образцы, достаточно подходящие для вашего использования.

0 голосов
/ 10 октября 2011

Вы должны использовать эту библиотеку сжатия или эту одну, может быть вариант?

...