2010-02-11 50 views
8

Uygulamamda kullanıcının veritabanı yedekleme konumunu seçebileceği bir iletişim pencerem var.
Seçtiği konumun "muhtemelen güvenli" olması durumunda kullanıcıyı uyarmak istiyorum.Yolun ağda olup olmadığını kontrol edin

aşağıdaki yerleri düşünebilirsiniz güvenceye:

  1. Seçilen klasör bir ağ
    (ya bir eşlenen sürücü (I:\Backup) veya UNC gösterimde (\\server2\backup) tarafından)
  2. Seçilen klasör açıkken veritabanı klasörü dışında farklı bir fiziksel diskte olduğunu

nasıl seçilen klasördeki hakkında bilgi bu tür alabilirim?
DriveInfo sınıfı hakkında biliyorum, ancak yalnızca UNC yollarını değil, sürücü harflerini işler.

+0

Merhaba Robbert! Aşağıdaki cevaplardan biri yapılabilecek bir çözüm sağladıysa, bunu cevap olarak kabul edersiniz, sadece bu soru artık “cevapsız” olarak görünmez. Teşekkür ederim! –

cevap

0

DirectoryInfo nesnesine bir göz atın. Seçilen yolda bir tane açın ve birçok şeyi kontrol edebilirsiniz. Belki de DirectorySecurity'u getirip yolun kilitli olup olmadığını kontrol etmek isteyebilirsiniz.

proaktif programcı

17

PathIsNetworkPath fonksiyonu bir göz atın ... onun/onu uygulama yedekleme için yeni bir klasör oluşturmak ve güçlü bir ACL'YE kendilerini oluşturabilirsiniz:

class Program 
{ 
    [DllImport("shlwapi.dll")] 
    private static extern bool PathIsNetworkPath(string pszPath); 

    static void Main(string[] args) 
    { 
     Console.WriteLine(PathIsNetworkPath("i:\Backup")); 
    } 
} 
+0

Sadece bir FYI: İşlev, belirtilen ağ kaynağının var olduğunu, şu anda erişilebilir olduğunu veya kullanıcının ona erişmek için yeterli izinlere sahip olduğunu doğrulamaz. –

İlgili konular