Merhaba,
Bu yazı dizimizde temel giriş çıkış işlemlerinin üçüncü kısımını inceleyeceğiz ve bu yazı bunlardan üç ve dördüncüleri olan FileInfo ve Path sınıfları ile ilgili temel bilgiler ve detayları içeriyor olacak.
Yazı dizimizin girişinde diğerlerinde de olduğu gibi öncelikle IO sınıfı hakkında bilgimizi ekleyelim:
Programlama dilleri içerisinde yer alan önemli yapılardan biri olan I\O sistemi bilgisayarların çeşitli kaynaklarına erişmek için kullanılacak yollar anlamına gelir. Dosya kaydetme, ekrana yada yazıcıya bilgi yazdırma, klavyeden bilgi girişleri birer I\O işlemleridir.
-C# dilinde ise I\O sistemi ile ilgili tüm sınıflar “System.IO” isim alanı altında bulunmaktadır.
-C# dilinde de I\O sistemi akışlar(stream) üzerine kuruludur. Akışlar bir girdi ya da çıktı sistemi üzerinden byte düzeyinde bilgiyi okuya sanal birimlerdir.
-Stream sınıfı akışlar için gerekli temel metot ve özellikleri barındırır.
FileInfo Sınıfı
FileInfo sınıfı ile File sınıfı neredeyse aynı özellikleri taşırlar. Bu iki sınıf arasında; AppendText(), Create(), CreateText(), Delete(), Open(), OpenRead(), OpenText(), ve OpenWrite() metotları ortaktır. Bunlara zaten daha önce de değinmiştik bunlar dışındaki File sınıfında olmayan metotlar ise:
-CopyTo
İki aşırı yüklenmiş versiyonu bulunmaktadır.
•FileInfo CopyTo(string yol)
•FileInfo CopyTo(string yol, bool x)
Birinci seçenete dosya hedefe kopyalanır ve eğer hedefte aynı dosya varsa çalışma zamanı hatası alırsınız. İkincide ise x değişkeni true gönderilir ise hedefte aynı dosya olsa da üzerine yazılır.
void MoveTo(string yol)
İlgili dosya yol klasörüne taşınır.
void Refresh()
İlgili dosyanın bilgileri diskten tekrar alınır.
FileInfo sınıfı ile File arasında ortak olan ve kullanılan diğer metotları da kod üzerinde inceleyecek olursak aşağıdaki gibidir:
using System; using System.IO; class FileInfoSinifi { static void Main() { string adres=@"C:\WINDOWS\deneme.txt"; FileInfo d=new FileInfo(adres); Console.WriteLine("Öznitelikler: "+d.Attributes); Console.WriteLine("Oluşturulma tarihi: "+ d.CreationTime); Console.WriteLine("Var mı? "+d.Exists); Console.WriteLine("Uzantı: "+d.Extension); Console.WriteLine("Tam adres: "+d.FullName); Console.WriteLine("Son erişim zamanı: "+d.LastAccessTime); Console.WriteLine("Son değişiklik zamanı: "+d.LastWriteTime); Console.WriteLine("Boyut: "+d.Length); Console.WriteLine("Klasör adı: "+d.Name); Console.WriteLine("Bulunduğu klasör: "+d.DirectoryName); } }
Path Sınıfı
Path sınıfı çeşitli işlemler yapan static üye elemanlara sahiptir. Örnek:
using System; using System.IO; class PathSinifi { static void Main() { string yol=@"C:\dizin\deneme.txt"; Console.WriteLine("Uzantı: "+Path.GetExtension(yol)); string yeniyol=Path.ChangeExtension(yol,"jpg"); Console.WriteLine("Yeni uzantı: "+Path.GetExtension(yeniyol)); string yol2=@"C:\klasör"; Console.WriteLine("Yeni yol: "+Path.Combine(yol,yol2)); Console.WriteLine("Klasör: "+Path.GetDirectoryName(yol)); Console.WriteLine("Dosya adı: "+Path.GetFileName(yol)); Console.WriteLine("Uzantısız dosya adı: "+Path.GetFileNameWithoutExtension(yol)); Console.WriteLine("Tam yol: "+Path.GetFullPath(yol)); Console.WriteLine("Kök dizin: "+Path.GetPathRoot(yol)); Console.WriteLine("Geçici dosya adı: "+Path.GetTempFileName()); Console.WriteLine("Geçici dosya dizini: "+Path.GetTempPath()); Console.WriteLine("Dosya uzantısı var mı? "+Path.HasExtension(yol)); Console.WriteLine("Alt dizin ayıracı: "+Path.AltDirectorySeparatorChar); Console.WriteLine("Dizin ayıracı: "+Path.DirectorySeparatorChar); Console.Write("Geçersiz dosya adı karakterleri: "); char[] dizi=Path.GetInvalidFileNameChars(); foreach(char b in dizi) Console.Write(b+" "); Console.Write("\nGeçersiz yol karakterleri: "); char[] dizi2=Path.GetInvalidPathChars(); foreach(char b in dizi) Console.Write(b+" "); Console.WriteLine("\nyol ayırıcı karakter: "+Path.PathSeparator); Console.WriteLine("Kök dizin ayıracı: "+Path.VolumeSeparatorChar); } }
FileInfo ve Path sınıflarının incelenmesi de bu yönde tamamlanıyor. Kafanıza takılan ya da eksik gördüğünüz kısımları yorumlar kısmından iletebilirsiniz.
Teşekkürler!