2016-04-08 17 views
1

StreamWriter kullanarak .txt dosyasını oluşturmaya çalışıyorum. Bir metin dosyasında okuyabilmek, o dosyanın içeriğini otomatik olarak yeni bir .txt dosyasına yazmak ve aynı dosya adıyla uygulama köküne saklamak istiyorum. (Bu mantıklı olur.)
Şu anda tüm bunları çalıştıracak bir çözüm bulamıyorum. Lütfen koduma bakın. Herhangi bir rehberlik büyük takdir edilecektir.StreamWriter yazmıyor

StreamWriter writer = new StreamWriter("..\\"op.FileName".txt"); 

olmalı:

string filename = Path.GetFilename(op.FileName); 
StreamWriter writer = new StreamWriter(".\\Notes\\" + filename); 

Sonra başka sorun buradadır:

private void button1_Click(object sender, EventArgs e) 
{ 
    //read in a .txt file// this all works fine 
    OpenFileDialog op = new OpenFileDialog(); 
    if (op.ShowDialog() == DialogResult.OK) 
    richTextBox1.LoadFile(op.FileName, RichTextBoxStreamType.PlainText); 
    this.Text = op.FileName; 

    string filename = op.FileName; 


    // not working // 
    //create new .txt file contaning module notes 

    StreamWriter writer = new StreamWriter("..\\"op.FileName".txt"); 
    using (writer) 
    { 
     writer.Write(richTextBox1); 
    } 
} 
+0

Bildirimi kullanım bildirimi içerisinde yapmalısınız. – Bauss

+0

Her şeyden önce, IDE'nizin sizin için işaret ettiği sözdizimi hatalarınızı düzeltmelisiniz. – derpirscher

cevap

10

öncelikle bu sorunların bir çift var,

using (writer) 
{ 
    writer.Write(richTextBox1); 
} 

Dene:

using (writer) 
{ 
    writer.Write(richTextBox1.Text); 
} 

Temel olarak,beklediğinden çalışmayan bir RichTextBox örneğini yazmaya çalışıyorsunuz.

Ayrıca bu yeniden isteyebilirsiniz: Burada if yapı sadece açık iptal sanki tehlikeli topraklarına aşağıdaki satırları koyar ondan sonra o çizgiyi, dikkate alacaktır

if (op.ShowDialog() == DialogResult.OK) 
richTextBox1.LoadFile(op.FileName, RichTextBoxStreamType.PlainText); 
this.Text = op.FileName; 

, hala olacak koşmak.

Yani hepsini bir araya koyarak:

using (OpenFileDialog op = new OpenFileDialog()) 
{  
    op.Filter = "Text Files|*.txt"; // Nice to have a filter 

    if (op.ShowDialog() == DialogResult.OK) 
    { 
     richTextBox1.LoadFile(op.FileName, RichTextBoxStreamType.PlainText); 

     this.Text = op.FileName; 
     string filename = Path.GetFilename(op.FileName); 
     StreamWriter writer = new StreamWriter(".\\Notes\\" + filename); 

     using (writer) 
     { 
      writer.Write(richTextBox1.Text); 
     } 
    } 

} // Clean up the OpenFileDialog instance 

Bu Notes dizinin var varsayar. Eğer bunu yaratmanız gerekmiyorsa. Ayrıca, dizinin, çalıştırıcının çalıştığı dizinde çalışan genellikle olan çalışma dizininde olduğunu varsayar.

+0

@ vc74 Ben aşk için değil, aşk için;) – Lloyd

+0

Teşekkürler @Lloyd, ikinci kısmı iyi, ancak StreamWriter yazar = yeni StreamWriter (".. \\" + op.FileName); Mscorlib.dll dosyasında "System.NotSupportedException" türünde işlenmeyen bir özel durum "hatası veriyor. Buna neden olabilecek herhangi bir fikrin var mı? Teşekkürler – JonnyAppleseed

+0

@JonnyAppleseed Bırakın .. \\ diyor ki, bir seviye yukarı çıkıyor, OpenFileDialog'dan geliyor zaten bir yolun olacak. – Lloyd

İlgili konular