
Merhaba arkadaşlar,
Bugün sizlere console uygulaması ile dosyaları zipleyerek yedek alma işlemlerini nasıl yapabilirsiniz anlatmaya çalışacağım.
Öncelikle uygulamada ki zipleme kodlarımızın çalışması için şurada ki dosyaları indiriyoruz. Ionic.Zlib.dll dosyasını bulup, referanslardan projemize ekliyoruz.
(Benim indirdiğim sürüm şuydu DotNetZipLib-DevKit-v1.9, burada ilgili dll i şurada bulabilirisiniz.zlib-v1.9\Debug\Ionic.Zlib.dll)
“Projeye referans olarak eklemek için; Solution Explorerdan, referanslar üzerinde sağ tıklayıp add Referance diyoruz > açılan ekranda browse kısmından dll’imizi seçip ekliyoruz.”
Kodlarımıza geçemeden önce projenin bitmiş haline buradan ulaşabilirsiniz.
Şimdi kodlarımıza geçelim.
Yeni bir konsol uygulaması açıp devam edin.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ionic.Zip; using System.IO; namespace ConsoleAppFileBackup { class Program { int globalCount; static void Main(string[] args) { Program program = new Program(); string backupFile = string.Empty; string outputFile = string.Empty; //yedek alınacak dosya yolu belirtilir..Örneğin c:\test backupFile = @"Backup File Path"; //yedeğin nereye alınacağı belirtilir. Örneğin c:\testOutput outputFile = @"OutPut File Path"; program.zipFile(backupFile, outputFile); } /// <summary> /// Klasörü ve altında ki tüm dosyları zipler. /// </summary> /// <param name="_filePath"> /// <param name="_outputFilePath"> public void zipFile(string _filePath, string _outputFilePath) { string day, month, year; day = DateTime.UtcNow.Day.ToString(); month = DateTime.UtcNow.Month.ToString(); year = DateTime.UtcNow.Year.ToString(); try { if (_outputFilePath != "") { globalCount = 0; //Klasör altında ki dosyaları listeler DirectoryInfo dirInfoFile = new DirectoryInfo(_outputFilePath); FileInfo[] files = dirInfoFile.GetFiles(); foreach (FileInfo fi in files) { globalCount++; } } //Zipleme işlemi başlatılır. ZipFile zip = new ZipFile(); zip.AddItem(_filePath); globalCount += 1; FileStream fs = File.Create(_outputFilePath + "\\" + day + "-" + month + "-" + year + "- BackupFile-" + globalCount + ".zip"); fs.Close(); zip.Save(_outputFilePath + "\\" + day +"-" + month + "-"+ year + "- BackupFile-" + globalCount + ".zip"); Console.Write("Sıkıştırma işlemi başarılı."); } catch (Exception ex) { Console.Write(ex.Message); } } } }
Eğer buraya kadar gelmişseniz, dosya yollarını belirtip programı çalıştırdığınız zaman seçtiğiniz dosyaların ziplendiğini görüceksiniz.
Artık programı otomatik olarak belirli zamanlarda çalıştırıp yedek alabilirsiniz. Bunun için windowsun görev zamanlayıcısını kullanabilirsiniz.
Bu yazımda windowsta görev zamanlamayıcıyı nasıl kullanırsınız anlattım, isterseniz göz atabilirsiniz.
Görüşmek üzere.