C# Dersleri 45 - Directory Kullanımı

     C# dilinde klasör oluşturmak, silmek, taşımak gibi işlemleri Directory classını kullanarak yapabiliriz. Directory classı System.IO kütüphanesi içindedir, dolayısıyla bu classı kullanabilmek için "using System.IO" kod cümlesini kullanarak bu kütüphaneyi eklemiş olmamız gerekir. Directory classı static bir class olduğu için nesnesini oluşturmadan, doğrudan kullanabiliriz. Bu makaledeki örneklerimde FolderBrowserDialog classını da kullanacağım. Eğer bu classın ne işe yaradığını bilmiyorsanız önce bu makaleye göz atmanız iyi olacaktır.

     Directory.Exists()

     Bir klasör oluşturmadan önce o klasörün zaten var olup olmadığını kontrol etmek isteriz. Directory.Exists() methodu, klasörün var olup olmamasına göre true/false değer döndürür.     

private void btnClick_Click(object sender, EventArgs e)
{
    if (Directory.Exists("D:/deneme"))
    {
        MessageBox.Show("Bu klasör zaten var");
    }
    else
    {
        MessageBox.Show("Böyle bir klasör yok");
    }
}

     Directory.CreateDirectory()

     Bir klasör oluşturmak için Directory.CreateDirectory() methodunu kullanırız. Bu method, parametre olarak klasörün oluşturulacağı dizin adresini alır.     

private void btnClick_Click(object sender, EventArgs e)
{
    string folderName = "Dersler";

    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        if (Directory.Exists(fbd.SelectedPath + "/" + folderName))
        {
            MessageBox.Show("Bu klasör zaten var");
        }
        else
        {
            Directory.CreateDirectory(fbd.SelectedPath + "/" + folderName);
            MessageBox.Show(fbd.SelectedPath + " dizininde " + folderName + " isimli klasör oluşturuldu");
        }
    }
}

     Burada önce FolderBrowserDialog classını kullanarak kullanıcının bir klasör seçmesini istiyoruz. Kullanıcının seçtiği klasörün altında "Dersler" isimli bir klasörün olup olmadığını kontrol ediyoruz. Eğer bu klasörde "Dersler" isimli bir klasör yoksa, oluşturuyoruz; varsa "Bu klasör zaten var" şeklinde hata mesajı gösteriyoruz. fbd.SelectedPath + "/" + folderName kod cümlesi kullanıcının seçtiği klasör altındaki "Dersler" klasörünün adresini oluşturmamızı sağlar. Directory.Exists() methodunu kullanarak da bu adresin olup olmadığını, yani klasörün var olup olmadığını kontrol etmiş oluyoruz.

Creating Directory With C#

     Directory.GetFiles()

     Belirli bir klasör içindeki dosyaların adreslerini string dizisi olarak almak istersek Directory.GetFiles() methodunu kullanabiliriz. Bu method, parametre olarak klasör yolunu alır.     

private void btnClick_Click(object sender, EventArgs e)

    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        string[] files = Directory.GetFiles(fbd.SelectedPath);
        for (int i = 0; i < files.Length; i++)
        {
            MessageBox.Show(files[i]);
        }
    }
}

     FolderBrowserDialog classını kullanarak, kullanıcının bir dizin seçmesini sağlıyoruz. Daha sonra kullanıcının seçtiği klasördeki dosyaları Directory.GetFiles() methodu ile files isimli string dizisine aktarıyoruz. Burada dikkat edilmesi gereken nokta; bu method yalnızca dosyaların adreslerini döndürür, alt klasörlerin değil.

     Directory.GetLogicalDrives()

     Kullanıcının bilgisayarındaki sürücülerin(C:/,D:/..) listesini almak istersek Directory.GetLogicalDrives() methodunu kullanabiliriz. Bu method parametre almaz ve string dizisi olarak sürücülerin adreslerini döndürür.     

private void btnClick_Click(object sender, EventArgs e)
{
    string[] drives = Directory.GetLogicalDrives();
    for (int i = 0; i < drives.Length; i++)
    {
        MessageBox.Show(drives[i]);
    }
}

     Directory.GetCreationTime()

     Bir klasörün oluşturulma tarihini almak istersek C# dilinde Directory.GetCreationTime() methodunu kullanabiliriz. Bu method, parametre olarak klasör yolunu alır.     

private void btnClick_Click(object sender, EventArgs e)

    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        DateTime olusturmaTarihi = Directory.GetCreationTime(fbd.SelectedPath);
        MessageBox.Show(olusturmaTarihi.ToString());
    }
}

     Burada FolderBrowserDialog ile önce kullanıcının bir klasör seçmesini sağlıyoruz. Daha sonra da seçtiği klasörün oluşturulma tarihini messagebox'ta gösteriyoruz.

     Directory.GetParent()

     Bir klasörün üst klasörünü bulmak istersek, Directory.GetParent() methodunu kullanabiliriz. Bu method, parametre olarak klasör yolunu alır.     

private void btnClick_Click(object sender, EventArgs e)

    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        string parent = Directory.GetParent(fbd.SelectedPath).ToString();
        MessageBox.Show(parent);
    }
}

     Directory.Move()

     Bir klasörün yerini değiştirmek istediğimizde Directory.Move() methodunu kullanabiliriz. Bu method, 2 adet string parametre alır. Birinci parametre taşınmak istenen klasörün adresi, ikinci parametre taşınacak adresi belirtir.     

private void btnClick_Click(object sender, EventArgs e)

    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        Directory.Move(fbd.SelectedPath, "D:/Dersler");
    }
}

     Directory.Delete()

     Bir klasörü silmek istediğimizde C# dilinde Directory.Delete() methodunu kullanabiliriz. Bu method parametre olarak silinmek istenen klasörün adresini alır.     

private void btnClick_Click(object sender, EventArgs e)

    FolderBrowserDialog fbd = new FolderBrowserDialog();
    if (fbd.ShowDialog() == DialogResult.OK)
    {
        Directory.Delete(fbd.SelectedPath);
    }
}

 

YORUMLAR
Email Adresi *
Görüntülenecek İsim *
Yorum *
Paylaş
  • f