C#

C# Dosya Kontrolü ve Dosya Oluşturma

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde dosya oluşturma ve dosyanın var olup olmadığını kontrol etme işlemlerini anlatacağım. Hazırsak başlayalım !

Öncelikle dosya.txt isminde masaüstünde bir tane metin belgesi oluşturalım, tüm işlemleri bu dosya üzerinden yürüteceğiz. Dosyamızın yolu ise c:/users/kullanici/desktop/dosya.txt olsun ve bu yolu da bir değişkene atayalım. Yani

string dosya = c:/users/kullanici/desktop/dosya.txt;

Öncelikle dosya var mı yok mu onu kontrol edelim. Bunun için de File.Exists() fonksiyonu kullanılıyor ve dosya varsa true, yoksa false döndürüyor. Tabi dönen değeri if ile kontrol edip ona göre işlem yapabiliyoruz.

if(File.Exists(dosya)
    MessageBox.Show("Dosya var");
else
    MessageBox.Show("Dosya yok");

Yazdığımız bu kod dosya varsa “Dosya var”, yoksa “Dosya yok” yazan bi MessageBox gösterecektir.

Şimdi de dosya varsa yine MessageBox göstersin ama yoksa da oluştursun istiyoruz. Dosya oluşturma işlemi iki farklı yolla yapılabilir. Bunlardan biri;

if(File.Exists(dosya)
    MessageBox.Show("Dosya var");
else
    File.Create(dosya);

kod bloğu ile halledilebilir.

Yalnız bu yazdığımız kodda şöyle bi eksiklik var; Create() metodu dosyayı oluşturur ama tipi sonradan belirtilmek üzere okuma yada yazma özelliği ile de dosyayı açar. Fakat dosyanın sürekli açık kalmaması gerek, çünkü program çalışırken aynı dosyayı elle açmak isteyebiliriz yada farklı bir program bu dosyayı kullanmak isteyebilir, o zamanda hata verecektir. Bunun sebebi de, bir dosyaya aynı anda sadece bir tane thread ulaşabilir, açan thread dosyayı kapatmadan başka bir thread tekrardan açamaz. O zaman ne yapıcaz derseniz de; dosyayı oluşturup eğer o dosya ile işimiz yoksa kapatacağız. Bunun için de Close() metodunu kullanacağız. Yani az önceki kodun doğru ve tam hali şöyle olmalı;

if(File.Exists(dosya))
    MessageBox.Show("Dosya var");
else
    File.Create(dosya).Close();

Dosya oluşturmak için ikinci yol ise Stream k ullanmak. Tabi biz dosya işlemi yapacağımız için FileStream kullanacağız. FileStream içinde çeşitli fonksiyonlar bulunduran bi class aslında ve bu classtan yeni bir nesne oluşturarak tüm fonksiyonlara erişebiliyoruz. Biz bu dersimizde sadece dosya oluşturmak için kullanacağız. FileStream, dosya yolu, dosyayı açma türü ve açma yöntemi olmak üzere 3 parametre alıyor (aslında birden fazla overload özelliği var ama biz sadece bahsettiğim şekilde kullanacağız). Önce FileStream türünde bi obje oluşturalım.

FileStream fs = new FileStream(dosya, FileAccess.Write, FileMode.OpenOrCreate);

Bu kod parçasında FileStream tipinde adı fs olan yeni bir nesne türettik ve dosyayı yazma modunda açıp dosya yoksa oluştur dedik. Yani belirtilen yolda dosya varsa yazma modunda açar ama dosya yoksa da oluşturur ve sonra yazma modunda açar. Şimdilik işimiz sadece dosya oluşturmak olduğu için bu şekilde bırakacağız. Tabi tıpkı File.Create() metodunda olduğu gibi StreamWriter’da dosyayı ele geçirir ve biz kapatana kadar dosyanın farklı bir thread tarafından açılmasına izin vermez. Biz dosyayı oluşturduktan sonra FileStream’ı kapatmamız ve dosyayı bırakmamız gerek. Bunun için ise;

fs.Close();

kod satırını kullanmalıyız.

Evet bu dersimizde masaüstünde bulunan (konuyu anlatmak için masaüstünde diyorum yoksa siz istediğiniz yerde dosya oluşturabilirsiniz) bir dosyanın var olup olmadığını kontrol ettik ve yoksa dosyayı oluşturduk. Bu dersimizde bu kadardı, diğer C# ile dosya işlemleri için buraya, Tüm C# derslerimize ulaşmak için ise buraya tıklayabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Göz Atın
Kapalı
Başa dön tuşu