2

私は今、多くのウェブサイトで答えを探してきましたが、有効な答えはすべて richTextbox でしか機能せず、通常のテキストボックスを使用しています。テキストボックスの内容を選択したファイルに保存しようとしていますが、何らかの理由でファイルが保存されず、何が問題なのかわかりません。これは「保存」メニュー項目のコードです:

private void saveToolStripMenuItem_Click(object sender, EventArgs e)
    {

        SaveFileDialog ofd = new SaveFileDialog();
        ofd.Title = "Save";
        ofd.Filter = "Txt Documents (.txt)|*.txt|All files (*.*)|*.*";
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            try
            {
                //I don't know what to make of this, because clearly this doesn't work
                File.WriteAllText(@"./TestFile.txt", MainTextbox.Text);
            }
            catch (Exception ex)
            {
                MainTextbox.Text += ex;
            }
        }
    }

エラーはありません。

4

4 に答える 4

0

まず、ファイルの保存は、テキストの送信元、リッチテキストボックスまたは通常のテキストボックスとは何の関係もありません。

Brian S.がコメントで述べたように、Cドライブに書き込んでいるため、例外がある可能性があります。相対パスを使用する必要があります。"./MyTest.txt"

于 2012-07-02T19:11:25.303 に答える
0

try { } catch (Exception ex) { }ブロック を使用する方法: Try/Catch ブロックを使用して例外をキャッチする

于 2012-07-02T19:05:35.980 に答える
0

アクセス拒否の問題だと思います..「D」ドライブで試してください...

これは実用的な例です.. WriteAllTextファイルが既に存在する場合に機能し、ファイルが既に存在する場合は使用しますAppendAllText

using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string createText = "Hello and Welcome" + Environment.NewLine;
            File.WriteAllText(path, createText);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText);

        // Open the file to read from.
        string readText = File.ReadAllText(path);
        Console.WriteLine(readText);
    }
}
于 2012-07-02T19:10:15.490 に答える