2013-09-03 6 views
6

के लिए प्रारंभिक निर्देशिका फ़ाइल संवाद को अंतिम निर्देशिका स्थान खोलना है जिसका उपयोग बंद होने से पहले किया गया था, लेकिन मुझे नहीं पता कि यह कैसे करें। मेरा सहयोगी केवल मुझे शब्द का उदाहरण दिखाता है, जब आप "फ़ाइल" पर क्लिक करते हैं तो यह आखिरी प्रयुक्त फाइलें दिखाता है, उसने मुझे एक रजिस्टर या आईएनआई फ़ाइल का उपयोग करने के लिए कहा, जिसे मैंने पहले कभी नहीं उपयोग किया था।OpenFileDialog

string f_sOudeLocatie = @"D:\path\is\classified"; 

private void btBrowse_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog fdlg = new OpenFileDialog(); 
    fdlg.Title = "Zoek de CSV file"; 
    fdlg.InitialDirectory = f_sOudeLocatie; 
    fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
    fdlg.FilterIndex = 1; 
    fdlg.RestoreDirectory = true; 
    if (fdlg.ShowDialog() == DialogResult.OK) 
    { 
     tbGekozenBestand.Text = fdlg.FileName; 
     tbVeranderNaamIn.Text = Path.GetDirectoryName(fdlg.FileName); 
     f_sOudeLocatie = Path.GetDirectoryName(fdlg.FileName); 
     f_sSourceFileName = fdlg.FileName; 
     f_sDestFileName = Path.GetFileName(Path.GetDirectoryName(fdlg.FileName)) + ".csv"; 
     btOpslaan.Enabled = true; 
     tbVeranderNaamIn.ReadOnly = false; 
    } 
} 
+1

अपने आवेदन को दो बार चलाने का प्रयास करें। यह देशी व्यवहार होना चाहिए कि विंडोज एक्सप्लोरर विंडोज़ खुली निर्देशिका है जहां कुछ फाइल खोली गई थी। मैं मेरे लिए काम करता हूँ –

+1

मुझे लगता है कि यह काम करना चाहिए क्योंकि 'InitialDirectory'' f_sOutdeLocatie' पर सेट है जिसे प्रत्येक बार उपयोगकर्ता 'ठीक' क्लिक करता है। –

+5

क्या काम नहीं कर रहा है? क्या आपने अपने सहयोगी से पूछा है? – Sayse

उत्तर

11

अगर आप बटन क्लिक करें घटना यह आप

string f_sOudeLocatie = @"D:\path\is\classified"; 
OpenFileDialog fdlg = new OpenFileDialog(); 

public Form1() 
{ 
    InitializeComponent(); 
    fdlg.Title = "Zoek de CSV file"; 
    fdlg.InitialDirectory = f_sOudeLocatie; 
    fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
    fdlg.FilterIndex = 1; 
    fdlg.RestoreDirectory = true; 
} 
private void btBrowse_Click(object sender, EventArgs e) 
{ 
    if (fdlg.ShowDialog() == DialogResult.OK) 
    { 
     fdlg.InitialDirectory = fdlg.FileName.Remove(fdlg.FileName.LastIndexOf("\\"));// THIS LINE IS IMPORTENT 

     tbGekozenBestand.Text = fdlg.FileName; 
     tbVeranderNaamIn.Text = Path.GetDirectoryName(fdlg.FileName); 
     f_sOudeLocatie = Path.GetDirectoryName(fdlg.FileName); 
     f_sSourceFileName = fdlg.FileName; 
     f_sDestFileName = Path.GetFileName(Path.GetDirectoryName(fdlg.FileName)) + ".csv"; 
     btOpslaan.Enabled = true; 
     tbVeranderNaamIn.ReadOnly = false; 
    } 
} 
1

आप कर सकते हैं किया गया है पिछले फ़ोल्डर याद रखना चाहिए बाहर OpenFileDialog पैदा हो जाएगी:

यहाँ कोड मैं का उपयोग कर रहा है अंतिम निर्देशिका स्थान को स्टोर करने के लिए रजिस्ट्री का उपयोग करें। और प्रत्येक बार जब आप फ़ाइल संवाद खोलते हैं, तो रजिस्ट्री से मान प्राप्त करें और डिफ़ॉल्ट स्थान के रूप में सेट करें। जब यह बंद हो जाता है तो स्थान वापस रजिस्ट्री पर संग्रहीत करता है।

इस कोड को परियोजना लेख को पढ़ने और रजिस्ट्री करने के लिए ReadWriteDeleteFromRegistry

आप INI फ़ाइल इस्तेमाल करते हैं तो, कुछ खोज आप के उदाहरण कैसे पढ़ सकते हैं और INI फ़ाइल से लिखने के लिए दे देंगे लिखने के बारे में अच्छी तरह से आप बताते हैं

4

आप स्थापित करने की आवश्यकता

fdlg.RestoreDirectory = false; 

कारण:

पुनर्स्थापना निर्देशिका संपत्ति सुनिश्चित करता है कि में मान पर्यावरण। CurrentDirectory OpenFileDialog बंद होने से पहले रीसेट हो जाएगा। यदि RestoreDirectory को झूठी पर सेट किया गया है, तो पर्यावरण। CurrentDirectory OpenFileDialog पर जो भी निर्देशिका है, उसे अंतिम रूप में खोल दिया जाएगा। जैसा कि here

+1

दरअसल यह सच नहीं है, पर्यावरण। वर्तमान डायरेक्टरी बदल नहीं है। – Pedro77

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