2014-09-22 14 views
5

String Path'un File veya Directory olup olmadığını belirleyerek otomatik olarak belirtilen Path'u yaratan bir işlev var.Yol yoksa bir String Yolu 'Dosya' veya 'Dizin' olup olmadığını nasıl kontrol edebilirim?

FileAttributes attributes = File.GetAttributes("//Path"); 

if ((attributes & FileAttributes.Directory) == FileAttributes.Directory) 
    { 
     Directory.CreateDirectory("//Path"); 
    } 

Ama ne yapar değilse: zaten exists yolu ise

Normalde, bu kullanırdınız? String Path'un File veya Directory olup olmadığını nasıl kontrol edersiniz?

+1

'File.Exists' ve' Directory.Exists' –

+2

Bir şey kontrol etmek istediğiniz mevcut değil mi? Belirli bir adın geçerli bir dosya adı olup olmadığını kontrol etmek isterseniz, bir dizin bulunmuyorsa bir uzantı olup olmadığını kontrol edebilirsiniz. – HimBromBeere

+0

@MetroSmurf Cidden? "Varsa, Yolun bir Dosya mı yoksa Dizin mi olduğunu nasıl kontrol edelim?" – Rawling

cevap

5

Senaryonuzdaki dosyaların uzantıları olması gerekiyorsa, bu yöntemi kullanabilirsiniz.

NOT: Pencerelerde yasal olarak dizinlerde geçen süreler vardır, ancak bu çoğunlukla dosyaların çapraz işletim sistemi uyumluluğu için tanıtılmıştır. Kesinlikle windows ortamlarında, uzantıya sahip olmayan dosyalara sahip olmak veya dizin adlarında boşluk veya boşluk koymak kötü biçim kabul edilir. Bu senaryoyu hesaba katmanız gerekmiyorsa, bu yöntemi kullanabilirsiniz. Eğer olmasa bile, zincir yoluyla gönderilen bir çeşit bayrak ya da dizenin amacını tanımlayan bir yapıya sahip olmanız gerekir.

var ext = System.IO.Path.GetExtension(strPath); 
if(ext == String.Empty) 
{ 
    //Its a path 
} 

Eğer dosya türüne herhangi bir analiz yapmak gerekir yoksa olduğunca basit gidebilir:

if(System.IO.Path.HasExtension(strPath)) 
{ 
    //It is a file 
} 
+2

Boolean Extention = System.IO.Path. Olmak için küçük bir değişiklik.HasExtension ("// Path") ' – Enumy

+3

+0: Not: Bu yaklaşım OP için çalışabilirken yanlıştır: klasör isimlerini nokta içermeyen hiçbir kısıtlama yoktur. "MyImages.jpg" veya "Game.Saves" adında bir klasöre sahip olmak çok güzel. –

+0

Sanırım cevabımda bunu açıkça belirledim. – Carter

İlgili konular