2010-06-30 6 views
34

क्या वे एक दूसरे के बराबर या विकल्प हैं? क्या उनमें से कोई भी बहिष्कृत है और यदि ऐसा है तो कौन? एएसपी.नेट वेब एप्लिकेशन में उपयोग के लिए किसकी सिफारिश की जाती है। मेरा उद्देश्य सभी फ़ाइलों को एक विशिष्ट निर्देशिका से रिकर्सिवली निकालना है।निर्देशिका बनाम निर्देशिकाइन्फो

उत्तर

43

Directory एक स्थिर वर्ग है जो निर्देशिकाओं के साथ काम करने के लिए स्थिर तरीकों प्रदान करता है। DirectoryInfo एक वर्ग का एक उदाहरण है जो एक विशिष्ट निर्देशिका के बारे में जानकारी प्रदान करता है। \ तापमान:: तो उदाहरण के लिए आप सी के बारे में जानकारी चाहते थे

var dirInfo = new DirectoryInfo("C:\\Temp"); 
if (dirInfo.Exists) { 
    FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories); 
    ... 
} 

तुम सिर्फ नाम तार के रूप में यह तेज़ और आसान निर्देशिका के स्थिर तरीकों का उपयोग करके DirectoryInfo का उदाहरण बनाकर से बचने के लिए हो सकता है चाहता है तो।

if (Directory.Exists("C:\\Temp")) { 
    string[] files = Directory.GetFiles("C:\\Temp", "*.*", SearchOption.AllDirectories); 
    ... 
} 

संक्षेप में, यह वास्तव में कोई फर्क नहीं पड़ता है जो आप जब तक यह करता है कि आप क्या चाहते का उपयोग करें। दूसरे पर भी सिफारिश नहीं की जाती है।

+2

उपर्युक्त के अलावा मैं यह भी जोड़ूंगा कि: "यदि आप किसी ऑब्जेक्ट का पुन: उपयोग करने जा रहे हैं, तो निर्देशिका श्रेणी के संबंधित स्थिर तरीकों के बजाय DirectoryInfo की इंस्टेंस विधि का उपयोग करने पर विचार करें, क्योंकि सुरक्षा जांच हमेशा जरूरी नहीं होगा। " एमएसडीएन दस्तावेज के अनुसार। – BKSpurgeon

1

DirectoryInfo (मूल रूप से) है निर्देशिका वर्ग लेकिन एक गैर स्थिर संदर्भ में प्रयोग किया जाता है। यदि आप FileSystem पर कई कॉल करने जा रहे हैं, खासकर जब यह वही फ़ोल्डर या कहा गया फ़ोल्डर की उपनिर्देशिका में, एमएसडीएन DirectoryInfo का उपयोग करने का सुझाव देता है।

7

Directory वर्ग एक स्थिर वर्ग जो बनाने के लिए, चाल, निर्देशिका और उप निर्देशिका गणना इस्तेमाल किया जा सकता है। DirectoryInfo वर्ग भी एक ही उद्देश्य Directory वर्ग की तरह जहां अपने सदस्यों Directory वर्ग के लिए विरोध के रूप में उदाहरण सदस्य हैं के लिए पेश किया जाता है। जब हम इन कक्षाओं का उपयोग कर सकते हैं तो दोनों के बीच अंतर में है। Directory वर्ग जब हम एक बार पर एक सरल फ़ोल्डर आपरेशन करना चाहते इस्तेमाल किया जा सकता। उदाहरण के लिए, आपको फ़ोल्डर को हटाने और दूर जाने की आवश्यकता है। लेकिन, DirectoryInfo कक्षा एक फ़ोल्डर के साथ जुड़ा हुआ है और आपको संचालन प्रदान करता है जो फ़ोल्डर पर किया जा सकता है। DirectoryInfo वर्ग पैरामीटर के रूप में एक रास्ता जब instantiating स्वीकार करता है और आप फ़ोल्डर पर सब कुछ प्रदान करता है। आप उपनिर्देशिका बना सकते हैं, ले जाते हैं, की गणना आदि CODEDIGEST

इसके अलावा एक महत्वपूर्ण टिप्पणी आप निर्देशिका DirectoryInfo पर कई कार्यों ऐसा करने के लिए प्रदर्शन लाभ होगा के रूप में यह की जरूरत नहीं होगी सुरक्षा विशेषाधिकार प्रत्येक कार्य पर जांच है।

+1

यदि आप आंशिक ट्रस्ट में चल रहे हैं तो कोड-एक्सेस सुरक्षा परिप्रेक्ष्य से यह सच हो सकता है लेकिन यह एसीएल सुरक्षा जांच पर लागू नहीं होता है, जहां तक ​​मुझे पता है कि हर ऑपरेशन पर अभी भी प्रदर्शन किया जाता है। – Josh

2

निर्देशिका

  1. निर्देशिका एक स्थिर वर्ग है।
  2. यह तब उपयोग किया जाना चाहिए जब हम फ़ोल्डर में एक ऑपरेशन करना चाहते हैं।
  3. के रूप में वहाँ निर्देशिका वर्ग के लिए वस्तु बनाने के लिए किसी भी आवश्यकता है, इसलिए नहीं इस का उपयोग कर के लिए किसी भी भूमि के ऊपर नहीं है।

निर्देशिका जानकारी कक्षा

  1. DirectoryInfo एक स्थिर वर्ग नहीं है।
  2. यदि उपयोगकर्ता को सृजन, हटाना, फ़ाइल लिस्टिंग इत्यादि जैसी निर्देशिकाओं पर बहुत से संचालन करने की आवश्यकता है, तो DirectoryInfo क्लास का उपयोग किया जाना चाहिए।
  3. सभी निर्देशिका संबंधित संचालन करने के लिए एक अलग वस्तु बनाई गई है।
  4. यह प्रभावी है अगर आप फ़ोल्डर पर कई संचालन करने जा रहे हैं क्योंकि, ऑब्जेक्ट बनने के बाद, इसमें इसके निर्माण समय, अंतिम पहुंच समय और विशेषताओं जैसे फ़ोल्डर के बारे में सभी आवश्यक जानकारी होती है। DirectoryInfo क्लास के सभी सदस्य उदाहरण सदस्य हैं।
संबंधित मुद्दे