2009-05-10 23 views
90

क्या एक गैर-विशेष फ़ोल्डर में फ़ोल्डर ब्राउज़र संवाद की प्रारंभिक निर्देशिका सेट करने का कोई तरीका है? यह वही है जो मैं वर्तमान में फ़ोल्डर ब्राउज़र संवाद सेट करें स्थान

fdbLocation.RootFolder = Environment.SpecialFolder.Desktop;
का उपयोग कर रहा हूं लेकिन मैं एक स्ट्रिंग में संग्रहीत पथ का उपयोग करना चाहता हूं जैसे कि
fdbLocation.RootFolder = myFolder;
यह एक त्रुटि "स्ट्रिंग 'को' सिस्टम 'में परिवर्तित नहीं कर सकता है। पर्यावरण। स्पेशलफोल्डर'"।

उत्तर

144

बस SelectedPath सेट ShowDialog को कॉल करने से पहले संपत्ति।

fdbLocation.SelectedPath = myFolder; 
+9

देता है ध्यान दें कि इसकी आवश्यकता है 'रूटफोल्डर 'को' पर्यावरण। SpecialFolder.Desktop 'पर सेट करें या यह काम नहीं कर सकता है। –

+1

नीचे चाड अनुदान का उत्तर देखें: वह सही मायने में बताता है कि रूटफ़ोल्डर सेट होना चाहिए, और चयनित पाथ काम करने के लिए रूटफॉल्डर * नीचे * होना चाहिए। –

+1

यह मेरे लिए काम करता है लेकिन यह फ़ोल्डर में फोकस सेट नहीं करता है। मुझे मैन्युअल रूप से स्क्रॉल करना होगा और उस फ़ोल्डर को डिफॉल्ट करना होगा जिसे इसे डिफॉल्ट किया गया है। दिखाए जाने पर इसे स्वचालित रूप से फोकस सेट करने का कोई तरीका है? – JoBaxter

22
fldrDialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 

"SelectedPath संपत्ति संवाद बॉक्स दिखाने से पहले सेट है, तो इस पथ के साथ फ़ोल्डर चयनित फ़ोल्डर हो जाएगा, जब तक कि SelectedPath एक निरपेक्ष पथ (RootFolder का एक सबफ़ोल्डर है कि करने के लिए सेट कर दिया जाता या अधिक सटीक रूप से, रूटफोल्डर द्वारा प्रतिनिधित्व किए गए खोल नामस्थान के सबफ़ोल्डर को इंगित करता है)। "

MSDN - SelectedPath

"GetFolderPath विधि इस गणना के साथ जुड़े स्थानों देता है। इन फ़ोल्डरों के स्थानों को अलग ऑपरेटिंग सिस्टम पर अलग-अलग मान सकते हैं, उपयोगकर्ता स्थानों में से कुछ को बदल सकते हैं, और स्थान स्थानीयकृत हैं। "

पुन: डेस्कटॉप बनाम DesktopDirectory

डेस्कटॉप

"तार्किक बजाय शारीरिक फाइल सिस्टम स्थान डेस्कटॉप।"

DesktopDirectory:

"निर्देशिका शारीरिक रूप से डेस्कटॉप पर दुकान फ़ाइल वस्तुओं के लिए इस्तेमाल किया करो डेस्कटॉप फ़ोल्डर को स्वयं है, जो एक आभासी फ़ोल्डर है के साथ इस निर्देशिका भ्रमित नहीं।। "

MSDN - Special Folder Enum

MSDN - GetFolderPath

+0

विशेष पथ के लिए आप क्या कर सकते हैं {{fldrDialog.RootFolder = Environment.SpecialFolder.DesktopDirectory}} – mayu

+0

बिल्कुल सही। धन्यवाद। कुंजी यह है कि जब चयनित होता है तो चयनितपैथ को इंगित करने के लिए संवाद को रूटफॉल्डर से नीचे होना चाहिए। –

+0

व्यवहार जैसा है: 'Environment.GetFolderPath (Environment.SpecialFolder.DesktopDirectory) '_C: \ Users \ Myusername \ डेस्कटॉप देता है।_ *** प्रतिरूपण कोड का उपयोग *** (लॉगऑनटाइप LOGON32_LOGON_INTERACTIVE के साथ) _empty string_ – Kiquenet

25

सेट SelectedPath संपत्ति इससे पहले कि आप ShowDialog फोन ...

folderBrowserDialog1.SelectedPath = @"c:\temp\"; 
folderBrowserDialog1.ShowDialog(); 

उन्हें सेल्सियस पर शुरू होगा: \ अस्थायी

+0

देता है *** रूटफॉल्डर *** सेट करने की आवश्यकता है ('चयनित पाथ रूटफॉल्डर के उप-फ़ोल्डर का एक पूर्ण पथ पर सेट है)? व्यवहार के रूप में है: 'Environment.GetFolderPath (Environment.SpecialFolder.DesktopDirectory) '_C: \ Users \ Myusername \ Desktop._ का उपयोग कर *** प्रतिरूपण कोड *** (लॉगऑन टाइप LOGON32_LOGON_INTERACTIVE के साथ) _empty string_ – Kiquenet

8

निर्देशिका चयनित पथ सेट करने के लिए और नए निर्देशिका को पुनः प्राप्त:

dlgBrowseForLogDirectory.SelectedPath = m_LogDirectory; 
if (dlgBrowseForLogDirectory.ShowDialog() == DialogResult.OK) 
{ 
    txtLogDirectory.Text = dlgBrowseForLogDirectory.SelectedPath; 
} 
संबंधित मुद्दे