2012-01-09 15 views
10

मैं उस पथ का चयन करने के लिए SaveFileDialog का उपयोग करता हूं जहां मैं फ़ाइल सहेजना चाहता हूं। मैंने कुछ फ़ोल्डर में InitialDirectory सेट किया है, लेकिन मैं उस फ़ोल्डर के उस फ़ोल्डर या उपफोल्डर्स को सहेजने वाले स्थानों को सीमित करना चाहता हूं। क्या यह संभव है?सी # SaveFileDialog विशिष्ट फ़ोल्डर में

SaveFileDialog dialog = new SaveFileDialog(); 
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder 
+0

क्षमा करें, लेकिन मैं एक मामले के बारे में सोच भी नहीं सकता है जब यह उपयोगी होना चाहिए। या तो आप उपयोगकर्ता को कहां से बचाने के लिए नियंत्रण देते हैं या आप फ़ाइल को सहेजते हैं। क्या आप कृपया बता सकते हैं कि आप ऐसा क्यों करना चाहते हैं? – M0rgenstern

+1

मेरे पास एक संपादक है जिसका उपयोग बंडल से फ़ाइलों को संपादित करने के लिए किया जाता है (इसे किसी डिवाइस पर कॉपी किया जाएगा)। मैं उपयोगकर्ता को अन्य फ़ोल्डर में फ़ाइलों को सहेजने में सक्षम नहीं होना चाहता हूं - उन्हें अंत में कॉपी नहीं किया जाएगा और इससे अजीब त्रुटियां हो सकती हैं। – Felics

उत्तर

9

नहीं, यह संभव नहीं है।

आप इसे SaveFileDialog पर सीधे संपत्ति के रूप में सेट नहीं कर सकते हैं। लेकिन आप FileOk ईवेंट का उपयोग करके यह करने के लिए प्रयास कर सकते हैं कि फ़ाइल उस निर्देशिका में है या अन्यथा ईवेंट रद्द करें!

dialog.FileOk += 
    delegate (object sender, CancelEventArgs e) 
    { 
     if (dialog.FileName is in wrong directory) 
     { 
      e.Cancel = true; 
     } 
    }; 

जैसा कि बताया गया है, अगला सबसे अच्छा विकल्प अपना खुद का संवाद बनाना है!

+0

अगर मैं अन्य फ़ोल्डर से फ़ाइल का चयन करता हूं तो मैं रद्द नहीं करना चाहता, मैं उसे अन्य फ़ोल्डर चुनना नहीं चाहता हूं। – Felics

+1

आप केवल चयन रद्द कर देंगे, आप संवाद रद्द नहीं करेंगे। – Kolky

+0

यह एक बहुत ही उपयोगी उत्तर था, धन्यवाद। – MikeMalter

0

कुछ समाधान है कि दिमाग में आ रहे हैं:

प्रदर्शन फ़ाइल चयन के बाद एक त्रुटि

नहीं के रूप में पहली जगह में उपयोगकर्ता को रोकने के रूप में अच्छा है, लेकिन यह कोड का एक बहुत नहीं ले करता है और बहुत सरल है।

अपनी खुद की फ़ाइल चयन स्क्रीन बिल्ड

बहुत कुछ भी है कि उपयोगकर्ता के आदी है की तरह लग रहे बनाने के लिए दर्दनाक। बहुत सारे कोड लेता है।

0

मैं क्या सोच सकता हूं ऑफ-विषय हो सकता है क्योंकि यह प्रोग्रामिंग के साथ उतना ही संबंधित नहीं है और यह मुश्किल हो सकता है।

जब आप एप्लिकेशन इंस्टॉल हो रहे हैं, तो आपको केवल एप्लिकेशन के लिए विंडोज पर एक विशिष्ट उपयोगकर्ता बनाना चाहिए।

से आप ऐप शुरू कर सकते हैं। ऐप का उपयोग कर उस उपयोगकर्ता के रूप में। मैनिफेस्ट फ़ाइल

इसके बाद आप उस विशिष्ट उपयोगकर्ता अनुमति को रूट फ़ोल्डर में लिखने के लिए दे सकते हैं, यह ओएस इसे कैसे नियंत्रित करेगा।

पीएस: मुझे नहीं लगता कि यह समाधान स्वयं का भुगतान करेगा, लेकिन यह काम कर सकता है।

सलामी

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