मैं खुद को मार रहा हूं और इस सरणी को क्रमबद्ध करने की कोशिश कर रहा हूं।विंडोज एक्सप्लोरर (संख्यात्मक रूप से और वर्णानुक्रम) जैसे फ़ोल्डर नामों की एक सरणी को सॉर्ट करना - VB.NET
मेरे पास एक निर्देशिका है जिसमें उत्पन्न निर्देशिकाएं हैं;
मंद फ़ोल्डर() स्ट्रिंग = Directory.GetDirectories (RootPath)
के रूप में मैं उन्हें हल हो ताकि वे Win7/Vista में Windows Explorer में तरह दिखाई की जरूरत है। - फ़ोल्डर नामों से संख्यात्मक और वर्णानुक्रम।
फ़ोल्डर नामों में अक्षर और संख्या दोनों होते हैं, कभी-कभी केवल अक्षर या संख्याएं होती हैं।
सरल Array.Sort (फ़ोल्डर)
C:\inetpub\wwwroot\rootpath\1
C:\inetpub\wwwroot\rootpath\10
C:\inetpub\wwwroot\rootpath\100
C:\inetpub\wwwroot\rootpath\1004
C:\inetpub\wwwroot\rootpath\101
C:\inetpub\wwwroot\rootpath\11
C:\inetpub\wwwroot\rootpath\12
C:\inetpub\wwwroot\rootpath\2
C:\inetpub\wwwroot\rootpath\3
C:\inetpub\wwwroot\rootpath\4
C:\inetpub\wwwroot\rootpath\5
C:\inetpub\wwwroot\rootpath\6
C:\inetpub\wwwroot\rootpath\7
C:\inetpub\wwwroot\rootpath\8
C:\inetpub\wwwroot\rootpath\87skjnd
C:\inetpub\wwwroot\rootpath\89sdf93kmw3
C:\inetpub\wwwroot\rootpath\9
C:\inetpub\wwwroot\rootpath\ad
C:\inetpub\wwwroot\rootpath\bin
C:\inetpub\wwwroot\rootpath\dark
C:\inetpub\wwwroot\rootpath\erk
C:\inetpub\wwwroot\rootpath\jkh23978yoaslkd3
C:\inetpub\wwwroot\rootpath\lk2309as
C:\inetpub\wwwroot\rootpath\work
C:\inetpub\wwwroot\rootpath\zone
में परिणाम क्या मैं के लिए (और क्या Windows Explorer प्रदर्शित करता है) है चाहता हूँ ...
C:\inetpub\wwwroot\rootpath\1
C:\inetpub\wwwroot\rootpath\2
C:\inetpub\wwwroot\rootpath\3
C:\inetpub\wwwroot\rootpath\4
C:\inetpub\wwwroot\rootpath\5
C:\inetpub\wwwroot\rootpath\6
C:\inetpub\wwwroot\rootpath\7
C:\inetpub\wwwroot\rootpath\8
C:\inetpub\wwwroot\rootpath\9
C:\inetpub\wwwroot\rootpath\10
C:\inetpub\wwwroot\rootpath\11
C:\inetpub\wwwroot\rootpath\12
C:\inetpub\wwwroot\rootpath\87skjnd
C:\inetpub\wwwroot\rootpath\89sdf93kmw3
C:\inetpub\wwwroot\rootpath\100
C:\inetpub\wwwroot\rootpath\101
C:\inetpub\wwwroot\rootpath\1004
C:\inetpub\wwwroot\rootpath\ad
C:\inetpub\wwwroot\rootpath\bin
C:\inetpub\wwwroot\rootpath\dark
C:\inetpub\wwwroot\rootpath\erk
C:\inetpub\wwwroot\rootpath\jkh23978yoaslkd3
C:\inetpub\wwwroot\rootpath\lk2309as
C:\inetpub\wwwroot\rootpath\work
C:\inetpub\wwwroot\rootpath\zone
मैं googled और है कि पता चला एक वर्ग को लिखा जाना चाहिए जो तत्वों को क्रमबद्ध करने के लिए IComparable का उपयोग करता है। एक सुपरनेवी होने के नाते ... मैं वास्तव में नहीं जानता कि यह कैसे किया जा सकता है। मैंने देखा कि अधिकांश उदाहरणों में बहु आयामी सरणी और चाबियां थीं: एस ...
भी अच्छा होगा अगर सॉर्टिंग फ़ाइल नामों (फ़ोल्डर्नम्स के बजाए) या दोनों फ़ोल्डरों और फ़ाइलों वाले सरणी पर लागू किया जा सके। । इस मामले में सॉर्ट किए गए फ़ोल्डर्स शीर्ष पर दिखाई देते हैं और नीचे दी गई फाइलें ... क्या यह भी संभव है?
किसी भी मदद की बहुत सराहना की जाएगी ...: डी धन्यवाद।
वाह .... वास्तव में अच्छा काम करता है ... धन्यवाद जोश! ... हालांकि एक चिंता हालांकि ... मैं जो काम कर रहा हूं उसे एक उत्पाद के हिस्से के रूप में बेचा जाएगा। अब यह लाइब्रेरी ASP.Net 2.0+ चलाने वाले सभी सर्वरों पर उपलब्ध होगी .. क्षमा करें अगर सवाल बेवकूफ लगता है। बस यह सुनिश्चित करना चाहता था कि मैं उन मामलों में समस्याओं में भाग नहीं पाऊंगा जहां यह पुस्तकालय उपलब्ध नहीं है। क्या यह जांचना संभव है कि यह पुस्तकालय मौजूद है या नहीं और फिर सॉर्टिंग लागू करें ... और यदि यह अस्तित्व में नहीं है तो छोड़ें। आपको बहुत धन्यवाद जोश ... मुझे अपने आप से बाहर निकालने के लिए वर्षों लगेगा। – Norman
दस्तावेज़ पृष्ठ के अनुसार यह XP और ऊपर, और सर्वर 2003 और ऊपर समर्थित है।डाउन-स्तरीय प्लेटफ़ॉर्म के लिए मुझे लगता है कि आप एक कार्यान्वयन में स्वैप कर सकते हैं जो सादे अल्फा सॉर्टिंग का उपयोग करता है। – Josh
कोड में एक छोटी सी समस्या थी (संभवतः वीबी में रूपांतरण की वजह से) लाइन 8 काम करता है; पब्लिक फ़ंक्शन तुलना (बायवेल एक्स ए स्ट्रिंग, बायवल वाई ए स्ट्रिंग) इंटीजर इम्प्लीमेंट्स सिस्टम के रूप में। चयन। जेनेरिक.इकोम्पियर (स्ट्रिंग का)। --- क्या पुस्तकालय मौजूद है या नहीं यह जांचने का कोई तरीका है? अगर आपको लगता है कि यह एक बेवकूफ सवाल धन्यवाद, नॉर्मन। – Norman