2010-02-19 14 views
5

कैसे मैं एक SaveFileDialog का उपयोग कर एक पाठ फ़ाइल के लिए अपने listbox आइटम की सामग्री को बचा सकता है के लिए एक लिस्टबॉक्स के आइटम सहेजा जा रहा है?एक पाठ फ़ाइल

मैं भी पाठ फ़ाइल में अतिरिक्त जानकारी जोड़ने के और यह भी एक MessageBox जब यह सफल हो गया है बचाया कहावत जोड़ना चाहते हैं।

+0

@roller - इस हल किया गया है? –

उत्तर

0

बचाने के लिए

// fetch the selected Text from your list 
    string textToRight = listBox1.SelectedItem.ToString(); 

    // Write to a file  
    StreamWriter sr = File.CreateText(@"testfile.txt");  
    sr.Write(textToRight); 
    sr.Close(); 

संदेश

// display Message 
    MessageBox.Show("Information Saved Successfully"); 
+0

** आप अपने StreamWriter ** को बंद करना भूल गए हैं। – SLaks

+0

तय किया गया है, धन्यवाद। –

1

एक SaveFileDialog उपयोगकर्ता के लिए यह दिखाने के लिए ShowDialog() साथ प्रयोग किया जाता है, और अगर यह सफल है, इसकी OpenFile() का उपयोग कर (फ़ाइल) प्राप्त करने के लिए Stream कि आप लिखते हैं msdn page पर एक उदाहरण है।

ListBox को Items संपत्ति के माध्यम से एक्सेस किया जा सकता है, जो कि बस इसके आइटमों का संग्रह है।

0

आप कुछ चीजें वहाँ चल रहा है - सुनिश्चित करें कि आप उन्हें अलग करता है, उदा

  • प्राप्त करें सूची बॉक्स सामग्री
  • संलग्न जानकारी
  • लिखें फ़ाइल

कृपया ध्यान दें !! कुछ अपवाद भी आप जबकि एक फ़ाइल को सहेजने प्राप्त कर सकते हैं, दस्तावेज़ देख सकेंगे और उन्हें किसी भी तरह संभाल के असंख्य ...

// Get list box contents 
var sb = new StringBuilder(); 
foreach (var item in lstBox.Items) 
{ 
    // i am using the .ToString here, you may do more 
    sb.AppendLine(item); 
} 
string data = sb.ToString(); 

// Append Info 
data = data + ????.... 

// Write File 
void Save(string data) 
{ 
    using(SaveFileDialog saveFileDialog = new SaveFileDialog()) 
    { 
     // optional 
     saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); 

     //saveFileDialog.Filter = ???; 

     if (saveFileDialog.ShowDialog() == DialogResult.OK) 
     { 
      File.WriteAllText(saveFileDialog.Filename); 
      MessageBox.Show("ok", "all good etc"); 
     } 
     else 
     { 
     // not good...... 
     } 
    } 
} 
+0

अपने कोड ब्लॉक स्वरूपण ठीक है, कृपया ...;) – IAbstract

+0

हाँ - कि बदसूरत था! (किया गया) –

3

इस यह करना चाहिए।

private void button1_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog f = new OpenFileDialog(); 

    f.ShowDialog();     

    ListBox l = new ListBox(); 
    l.Items.Add("one"); 
    l.Items.Add("two"); 
    l.Items.Add("three"); 
    l.Items.Add("four"); 

    string textout = ""; 

    // assume the li is a string - will fail if not 
    foreach (string li in l.Items) 
    { 
     textout = textout + li + Environment.NewLine; 
    } 

    textout = "extra stuff at the top" + Environment.NewLine + textout + "extra stuff at the bottom"; 
    File.WriteAllText(f.FileName, textout); 

    MessageBox.Show("all saved!"); 
} 
+2

'ओपनफाइलडियलॉग'? या 'SaveFileDialog'? – spajce

3
 var saveFile = new SaveFileDialog(); 
     saveFile.Filter = "Text (*.txt)|*.txt"; 
     if (saveFile.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 
      using (var sw = new StreamWriter(saveFile.FileName, false)) 
       foreach (var item in listBox1.Items) 
        sw.Write(item.ToString() + Environment.NewLine); 
      MessageBox.Show("Success"); 
     } 

यह भी ध्यान रखें StreamWriterEncoding का एक प्रकार है ले लो।

+0

संभावित डुप्लिकेट: http://stackoverflow.com/questions/3336186/saving-listbox-items-to-file?rq=1 –

+0

पूरी तरह से भयानक .. –

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