2010-06-17 13 views
11

मैं एक सी # कक्षा की तलाश कर रहा हूं जो फ़ाइल सिस्टम पथ का प्रतिनिधित्व करता है। मैं इसका उपयोग (स्ट्रिंग्स के बजाए) डेटा प्रकार के चर और विधि तर्क (शीर्ष कारण: प्रकार सुरक्षा, कॉन्सट-सबूत, तार्किक तुलना) के रूप में करना चाहता हूं।सी # (गैर स्थैतिक) वर्ग पथ का प्रतिनिधित्व करने के लिए

  • System.IO.Path अधिकांश कार्यक्षमता प्रदान करता है जो मैं चाहता हूं, लेकिन यह स्थिर है।
  • System.IO.FileInfo, जैसा कि मैं समझता हूं, आईओ ऑपरेशंस को अपना काम करने के लिए करता है। मैं केवल पथ स्ट्रिंग के लिए एक रैपर चाहता हूँ।

धन्यवाद!

+0

System.IO.Path स्टेटिक वर्ग और सार नहीं है। – Chinjoo

+0

किसी ने हाल ही में इस तरह एक ढांचा लिखा है, अगर मैं यह जान सकूं कि इसे क्या कहा जाता है, तो मैं इसे उत्तर में रखूंगा, तब तक इसके लिए गुगलिंग शुरू करूंगा। :) –

+0

उस ढांचे को मिला - फ्लुएंटपाथ। मैंने उस प्रभाव का जवाब जोड़ा है। –

उत्तर

4

लाइब्रेरी NDepend.Helpers.FileDirectoryPath हो सकता है जो आप खोज रहे हैं।

यह प्रदान करता है:

  • जोरदार टाइप किया फ़ाइल/निर्देशिका पथ।
  • सापेक्ष/पूर्ण पथ रूपांतरण।
  • पथ सामान्य एपीआई
  • पथ वैधता की जांच एपीआई
  • पथ तुलना एपीआई
  • पथ ब्राउज़िंग एपीआई।
  • पथ रिबेसिंग एपीआई
  • पथ संचालन की सूची (TryGetCommonRootDirectory, GetListOfUniqueDirsAndUniqueFileNames, सूची समानता ...)
+0

मैं इसे देख लूंगा, यह आशाजनक लग रहा है। धन्यवाद! –

+0

समय बाधाओं के कारण इसका उपयोग समाप्त नहीं हुआ (आवश्यक रिफैक्टरिंग बर्दाश्त नहीं कर सका)। हालांकि, यह पुस्तकालय बिल्कुल वही था जो मैं खोज रहा था। –

1

ठीक है, आप System.Uri के लिए पूछ रहे हैं। लेकिन क्या आप करना चाहते हैं (या अधिक सटीक रूप से, आपको क्या करना चाहिए) सिस्टम.पैथ और दोस्तों का उपयोग करें। यह वही है जो हर कोई करता है, और यह सही और उचित है।

1

सबसे पहले, System.IO.Pathstatic है, abstract नहीं।

आप जो करना चाहते हैं उसके आधार पर, आप या तो System.IO.DirectoryInfo, System.Uri का उपयोग कर सकते हैं या एक कस्टम क्लास बना सकते हैं जो आंतरिक रूप से System.IO.Path का उपयोग करता है।

0

System.IO.Path के लिए एक रैपर बनाएं और अनुपलब्ध कार्यक्षमता को अपने रैपर में जोड़ें।

+0

स्वाभाविक रूप से मैं ऐसा कर सकता था, लेकिन मैं एनआईएच कोड लिखने से बचना चाहता हूं। यह एक हल समस्या है। –

0

System.IO.Path एक सार वर्ग नहीं है, यह एक स्थिर वर्ग है; अंतर यह है कि आप फ़ाइल पथ का प्रतिनिधित्व करने वाले स्ट्रिंग्स में हेरफेर करने के लिए स्थिर Path विधियों का उपयोग कर सकते हैं।

आप कुछ फ़ाइल पथ संचालन के लिए System.Uri कक्षा का भी उपयोग कर सकते हैं, लेकिन वह कक्षा वास्तव में फ़ाइलों को नहीं, बल्कि URL को लक्षित करती है।

आप कल्पना होना चाहते हैं, या आप अपने फ़ाइल पथ हेरफेर तरीकों एक विशिष्ट उदाहरण से जुड़ी होने की जरूरत है, तो आप String वर्ग के लिए विस्तार तरीकों कि फ़ाइल पथ आंतरिक Path तरीकों का उपयोग कर कार्रवाई करने का एक सेट लिख सकते हैं।

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