2012-07-24 18 views
11

मैंने पोस्ट किया है - How to use OpenFileDialog to select a folder?, मुझे सही उत्तर नहीं मिला। तो, मैंने अपना प्रश्न बदल दिया है।सी # - एकाधिक फ़ोल्डरों और फ़ाइलों का चयन करने के लिए OpenFileDialog को कैसे अनुकूलित करें?

मैं एकाधिक फ़ोल्डर्स और फ़ाइलों का चयन करने के लिए OpenFileDialog को कस्टमाइज़ करना चाहता हूं। मैंने एक समाधान खोजने की कोशिश की और इसके बारे में कुछ पोस्ट देख सकते थे।

इंटरनेट से, मुझे निम्नलिखित प्रोजेक्ट - https://github.com/scottwis/OpenFileOrFolderDialog मिला।

हालांकि, इसका उपयोग करते समय, मुझे एक समस्या का सामना करना पड़ा। यह GetOpenFileName फ़ंक्शन और OPENFILENAME एमएफसी से संरचना का उपयोग करता है। और OPENFILENAME का सदस्य "टेम्पलेट आईडी" नामक सदस्य है। यह संवाद टेम्पलेट के लिए पहचानकर्ता है। और नमूना प्रोजेक्ट में "res1.rc" फ़ाइल है और इसमें टेम्पलेट संवाद भी है।

लेकिन मुझे नहीं पता मैं इस फ़ाइल को अपने सी # प्रोजेक्ट में कैसे संलग्न कर सकता हूं?

या क्या कोई अन्य सही समाधान है - "एकाधिक फ़ोल्डरों और फ़ाइलों का चयन करने के लिए OpenFileDialog को कैसे अनुकूलित करें?"?

उत्तर

11

यदि आप FileName प्रॉपर्टी के बजाय फ़ाइल नाम गुण का उपयोग करते हैं, तो आपको प्रत्येक फ़ाइल चयनित स्ट्रिंग सरणी मिलती है, आप Shift कुंजी का उपयोग करके एकाधिक फ़ाइलों का चयन करते हैं। इसलिए जैसा:

private void button1_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog x = new OpenFileDialog(); 
    x.Multiselect = true; 
    x.ShowDialog(); 
    string[] result = x.FileNames; 

    foreach (string y in result) 
     MessageBox.Show(y, "Selected Item", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 

फ़ाइलों और फ़ोल्डरों के लिए आप का उपयोग करने के CommonOpenFileDialogWinAPI के साथ शामिल की जरूरत है, विशेष वर्ग here है।

openFileDialog.Multiselect = true; 
+1

आपको काम करने के लिए 'OpenFileDialog'' 'सत्य' की 'मल्टीइलेक्स्ट' प्रॉपर्टी सेट करने की आवश्यकता है :) –

+2

क्या आप" एकाधिक ** फ़ोल्डर्स ** और फ़ाइलें "भूल गए थे? मैं फ़ोल्डरों को भी चुनना चाहता हूं। – Yun

+0

मुझे लगता है कि आपको इसके बजाय CommonOpenFileDialog का उपयोग करने की आवश्यकता है, लेकिन इसे उसी तरह से काम करना चाहिए, मैं जल्द ही अपना जवाब अपडेट करूँगा – JMK

2

इस प्रयास करें। निश्चित रूप से OpenFileDialog फ़ाइल के साथ-साथ फ़ोल्डर ब्राउज़र दोनों के रूप में कार्य नहीं कर सकता है। आपके पास दो विकल्प हैं जो किसी तृतीय पक्ष टूल के लिए जाते हैं जैसे कि आपको दूसरा मिलाकर अपना नियंत्रण बनाते हैं। आश्चर्य की बात है कि आप अपने नियंत्रण का एक बहुत ही सरल संस्करण बहुत मुश्किल नहीं बना सकते हैं।

+0

क्या आप "एकाधिक ** फ़ोल्डर्स ** और फाइलें" भूल गए थे? मैं फ़ोल्डरों को भी चुनना चाहता हूं। – Yun

+0

फ़ोल्डर और फ़ाइल दोनों के लिए काम करना चाहिए। –

1

आप एक ऐसे ही नेट नियंत्रण में बनाया नहीं हो सकता है:

+0

धन्यवाद। क्या आपके पास कोई सुझाव दिया गया तृतीय-पक्ष टूल है? – Yun

+0

मैंने कभी भी इसका उपयोग नहीं किया है ... कभी भी इसकी आवश्यकता नहीं है ... लेकिन इन लिंक को देखें .. http://www.ssware.com/fldrview.htm और http: //www.codeproject।com/लेख/44,914/चयन फ़ाइल या फ़ोल्डर-से-एक ही संवाद –

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