c# - System.Windows.Forms.SaveFileDialog does not enforce default extension -


मैं SaveFileDialog और FileOpenDialog करने के लिए एक विस्तार लागू करने की कोशिश कर रहा हूँ उपयोगकर्ता द्वारा दर्ज फ़ाइल का नाम मैंने प्रस्तावित नमूने का उपयोग करने की कोशिश की है लेकिन यह उद्देश्य से काम नहीं करता है:

  var dialog = new savefileDialog ()) dialog.AddExtension = true; Dialog.DefaultExt = "foo"; Dialog.filter = "फू दस्तावेज़ (* .foo) | * .foo"; यदि (dialog.ShowDialog () == DialogResult.OK) {...}  

यदि उपयोगकर्ता एक जहां किसी फ़ाइल में पाठ test टाइप करता है < कोड> test.xml अस्तित्व में होता है, संवाद नाम test.xml का सुझाव देगा (जबकि मैं वास्तव में सूची में * .foo देखना चाहता हूं )। इससे भी बदतर: यदि उपयोगकर्ता test.xml का चयन करता है, तो मैं वास्तव में आउटपुट फ़ाइल नाम के रूप में test.xml प्राप्त करूँगा।

मैं यह कैसे सुनिश्चित कर सकता हूं कि SaveFileDialog वास्तव में केवल उपयोगकर्ता को एक * .foo फ़ाइल चुनने की अनुमति देता है? या कम से कम, जब उपयोगकर्ता सहेजें ?

पर क्लिक करता है तो एक्सटेंशन को बदल देता / जोड़ता है / सुझाया गया समाधान ( FileOk ईवेंट हैंडलर को कार्यान्वित करें) केवल

डायलॉग में रहने के लिए और

/ Em> सही फ़ाइल एक्सटेंशन के साथ नई फ़ाइल नाम को प्रतिबिंबित करने के लिए, FileOk हैंडलर में टेक्स्ट बॉक्स में प्रदर्शित फ़ाइल नाम अपडेट करें।

< Div class = "post-text" itemprop = "text">

AFAIK दिए गए फ़ाइल एक्सटेंशन को लागू करने के लिए कोई विश्वसनीय तरीका नहीं है। एक बार संवाद बंद होने और उपयोगकर्ता को सूचित करने के बाद यह सही एक्सटेंशन को सत्यापित करने के लिए एक अच्छा अभ्यास है, यदि वह विस्तार से मेल नहीं खाता है तो उसने एक अमान्य फ़ाइल का चयन किया है।


Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -