मैं यह निर्धारित करने की कोशिश कर रहा हूं कि क्या उपयोगकर्ता द्वारा स्ट्रिंग इनपुट फ़ोल्डर में पथ का प्रतिनिधित्व करने के लिए मान्य है। मान्य होने से मेरा मतलब ठीक से स्वरूपित है।
मेरे आवेदन में, फ़ोल्डर एक स्थापना गंतव्य का प्रतिनिधित्व करता है। बशर्ते कि फ़ोल्डर पथ है वैध, मैं निर्धारित करने के लिए यदि फ़ोल्डर मौजूद चाहते हैं, और इसे बनाने के अगर ऐसा नहीं होता।
मैं वर्तमान में उपयोग कर रहा हूं IO.Directory.Exists( String path )
। मुझे लगता है कि यह ठीक काम करता है सिवाय इसके जब उपयोगकर्ता स्ट्रिंग को ठीक से प्रारूपित नहीं करता है। जब ऐसा होता है, तो यह विधि गलत वापस आ जाएगी जो इंगित करती है कि फ़ोल्डर मौजूद नहीं है। लेकिन यह एक समस्या है क्योंकि मैं बाद में फ़ोल्डर नहीं बना पाऊंगा।
मेरे googling से मुझे यह देखने के लिए एक नियमित अभिव्यक्ति का उपयोग करने का सुझाव मिला कि क्या प्रारूप उचित है। मुझे नियमित अभिव्यक्ति के साथ कोई अनुभव नहीं है, और मैं सोच रहा हूं कि यह एक व्यवहार्य दृष्टिकोण है। यहाँ मैं क्या पाया:
Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
के साथ संयोजन में एक नियमित अभिव्यक्ति परीक्षण होगा Directory.Exists()
, मुझे यह जांचने के लिए एक अच्छा पर्याप्त तरीका दे कि क्या मार्ग वैध है और क्या यह मौजूद है? मुझे पता है कि यह ओएस और अन्य कारकों के साथ अलग-अलग होगा, लेकिन कार्यक्रम केवल विंडोज उपयोगकर्ताओं के लिए लक्षित है ।