फ़ाइल संवाद खोलें और WPF नियंत्रण और C # का उपयोग करके एक फ़ाइल का चयन करें


189

मैं एक है TextBoxनामित textbox1और एक Buttonनामित button1। जब मैं क्लिक करता button1हूं तो मैं केवल छवि फ़ाइलों (प्रकार jpg, पीएनजी, बीएमपी ...) की खोज करने के लिए अपनी फ़ाइलों को ब्राउज़ करना चाहता हूं। और जब मैं एक छवि फ़ाइल का चयन करता हूं और फ़ाइल संवाद में ओके पर क्लिक करता हूं, तो मैं चाहता हूं कि फाइल निर्देशिका textbox1.textइस तरह से लिखी जाए :

textbox1.Text = "C:\myfolder\myimage.jpg"

जवाबों:


440

ऐसा कुछ होना चाहिए जो आपको चाहिए

private void button1_Click(object sender, RoutedEventArgs e)
{
    // Create OpenFileDialog 
    Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();



    // Set filter for file extension and default file extension 
    dlg.DefaultExt = ".png";
    dlg.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif"; 


    // Display OpenFileDialog by calling ShowDialog method 
    Nullable<bool> result = dlg.ShowDialog();


    // Get the selected file name and display in a TextBox 
    if (result == true)
    {
        // Open document 
        string filename = dlg.FileName;
        textBox1.Text = filename;
    }
}

20
if (result.HasValue && result.Value) के बजाय यदि (परिणाम == सत्य)
eflles

2
@ एफ़एलएस क्या आपके रास्ते को msdn.microsoft.com/en-us/library/… पर आधिकारिक नमूना कोड प्रदान करता है ?
डिर्क बेस्टर

5
@eflles नमूना तकनीकी रूप से सही है। से msdn.microsoft.com/en-us/library/2cf62fcy.aspx : जब आप नल प्रकार के साथ तुलना करते हैं, यदि नल प्रकारों में से एक का मान रिक्त है और अन्य नहीं है, सभी की तुलना गलत पर के अलावा मूल्यांकन! = (बराबर नहीं)। हालाँकि मुझे लगता है कि यह तर्क दिया जा सकता है कि क्या यह इस तकनीकी का शोषण है (मुझे व्यक्तिगत रूप से लगता है कि यह इस मामले में ठीक है)।
ओहद श्नाइडर

1
@ जरूर पढ़िए! बस उस संपत्ति को अपडेट करें जो एक्सएएमएल में टेक्स्टबॉक्स से जुड़ी है, जैसेthis.FileName = filename
ओहद श्नाइडर

1
@sproketboy मुझे पूर्ण भ्रम का सामना करना होगा जैसा कि आप "शुद्ध 64 बिट डेस्कटॉप एप्लिकेशन" से मतलब रखते हैं; क्या आप आगे बता सकते हैं? मेरी समझ यह है कि Microsoft.Win32पुस्तकालय अंतर्निहित ओएस के लिए एक प्रबंधित एपीआई हैं; कैसे वे ओएस से बात करते हैं, मेरे बाकी (x64 64 बिट) एप्लिकेशन के लिए कोई चिंता नहीं होनी चाहिए, और ओएस एपीआई खुद को केवल विरासत के कारणों के लिए 'ब्लाह 32' कहा जाता है।
विजुअलमेल

23
var ofd = new Microsoft.Win32.OpenFileDialog() {Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif"}; 
var result = ofd.ShowDialog();
if (result == false) return;
textBox1.Text = ofd.FileName;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.