2010-02-11 9 views
8

मेरे ऐप में मेरे पास एक संवाद है जिसमें उपयोगकर्ता डेटाबेस बैकअप स्थान का चयन कर सकता है।
मैं उपयोगकर्ता को चेतावनी देना चाहता हूं कि यदि वह स्थान चुना गया है तो वह "शायद सुरक्षित नहीं है"।जांचें कि पथ नेटवर्क पर है

मैं निम्न स्थानों पर विचार करना चाहते सुरक्षित:

  1. जब चयनित फ़ोल्डर एक नेटवर्क
    (या तो एक मैप की गई ड्राइव (I:\Backup) या यूएनसी संकेतन (\\server2\backup) द्वारा)
  2. जब चयनित फ़ोल्डर पर है डेटाबेस फ़ोल्डर

से किसी भिन्न भौतिक डिस्क पर है, मैं किसी चयनित फ़ोल्डर के बारे में इस तरह की जानकारी कैसे प्राप्त कर सकता हूं?
मुझे DriveInfo कक्षा के बारे में पता है, लेकिन यह केवल यूएनसी पथों पर ड्राइव अक्षरों को संभालता है।

+0

हाय रोब्बेर्ट! यदि नीचे दिए गए उत्तरों में से एक ने एक निष्पादन योग्य समाधान प्रदान किया है, तो क्या आप इसे उत्तर के रूप में स्वीकार कर सकते हैं, इसलिए यह प्रश्न अब 'अनुत्तरित' के रूप में दिखाई नहीं देता है। धन्यवाद! –

उत्तर

0

DirectoryInfo ऑब्जेक्ट पर एक नज़र डालें। चयनित पथ पर एक खोलें और आप कई चीजों की जांच कर सकते हैं। शायद आप DirectorySecurity प्राप्त करना चाहते हैं और जांच सकते हैं कि पथ लॉक हो गया है या नहीं।

एक सक्रिय प्रोग्रामर उसकी/उसके आवेदन बैकअप के लिए एक नया फ़ोल्डर बनाने सकता है और एक मजबूत एसीएल खुद को बनाने के ...

17

PathIsNetworkPath समारोह पर एक नज़र डालें:

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

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

बस एक FYI: फ़ंक्शन सत्यापित नहीं करता है कि निर्दिष्ट नेटवर्क संसाधन मौजूद है, वर्तमान में पहुंच योग्य है, या उपयोगकर्ता के पास इसे एक्सेस करने के लिए पर्याप्त अनुमतियां हैं। –

संबंधित मुद्दे