facebook


twitter




Enum tipi ile resim uzantısını kontrol etmek
1
yazar: vedattaylan | tarih: 18.10.2010 05:04:20

Bir çok projede önceleri kendimde kullandığım ve bir çok sitede de aynı örneklerini gördüğüm resim uzantısını kontrol etmede sizlere kendi yönetimle biraz daha kullanılabilir halini gösterceğim.

 

İlk önce eskiden nasıl yapıyordum, bunun bir örneğini göstermek isterim. Veritabanından, klasörden veya en çokda FileUpload kontrolünden gelen resim adının resim formatına uygun olup olmadığını

 

string uzanti = System.IO.Path.GetExtension(FileUpload1.FileName);

if (uzanti != ".jpg" || uzanti != ".png" || uzanti != ".gif")

{

return;

}

 

gibi bir kod yazımıyla sağlardım. Ancak bu bir çok yerde kontrol etmem gerektiğinde aynı şeyleri tekrar tekrar yazmak sıkıcı gelirdi. Bunun için bir metotda yazılabilir ve her zaman çağırabilir ama size içinde GetExtension metodunuda kullanarak kendi yöntemim olan Enum tipi ile daha kullanılabilir bir yöntem göstereceğim.

 

İlk önce bir enum yaratıyoruz. Adını “ImageExtension” verelim. Yarattığımız enum tipine uzantılarımızı yazıyoruz.

 

public enum ImageExtension

{

jpg,

jpeg,

gif,

png,

bmp

}

 

Daha sonra GetExtension Metodunu kullanarak dosyanın uzantısını alıyoruz.

 

public static string GetExtension(string FileName)

{

return System.IO.Path.GetExtension(FileName).ToLower().Remove(0, 1);

}

 

Burdaki önemli bir detay; GetExtension metodu ile bize değer döndürdüğü “.jpg” deki nokta işaretini Remove(); metodu ile kaldırıyoruz ki Enum daki karşıkları ile aynı olsun. Bu önemli notu söyledikten sonra “ImageExtensionControl” adında bize true yada false döndüren asıl metodumuzu yaratıyoruz.

 

public static bool ImageExtensionControl(string FileName)

{

return Enum.GetNames(typeof(ImageExtension)).Contains(GetExtension(FileName));

}

 

Burda Enum classs sınıfına ait bize string Array dizisi döndüren Getnames metodunu kullanıyoruz. GetNames metodu bizden Enum tipinden bir parametre istiyor. Burda ImageExtension olan enum tipimizi gösteriyoruz. Bize ImageExtension enum tipindeki çieriğin hepsini bir dizi halinde veiyor. Daha sonra Contains() Metodu ile bu dizi içinde GetExtension metodu ile dosya uzantısını veriyoruz. Sonuçta dosya uzantısının doğru olup olmadığına bakıp bize true yada false döndürerek ona göre işlemlerimizi gerçekleştirebiliriz.

 

if (ImageExtensionControl(FileName))

{

//Kod Yazımı

}

else

{

//Error

}

 

Gördüğünüz gibi artık sayfalarımızda sadece tek bir ImageExtensionControl metodu ile dosya uzantılarımızı kontrol edebiliriz. İsterseniz bu metdou diğer uzantılar içinde yapabilirsiniz; video dosyaları, ses dpsyaları, Offfice dosyaları vs. gibi.. Bir sonraki makalemde görüşmek üzere. Hoşçakalın…

 

Vedat Taylan




Yorumlar

Adnan TURK

24.11.2010

Emeğine sağlık. faydalı bir makale olmuş. devamını bekliyoruz.

Ad Soyad E-posta Web Sitesi