c# – Yedek Alma Programı | Console uygulaması

13 Haz

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.

consoleApp

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>
        /// <param name="_outputFilePath"></param>
        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.

Bir Cevap Yazın