3

私のプログラムには、1 つのフォームと 7 つのユーザー コントロールが含まれています。MS Visual Studio 2010 C# 言語を使用しています。

マイ プログラム: .txt ファイル内のすべてのテキストを UserControl のテキスト ボックスに表示します。

私の目的: .txt ファイルが存在するかどうかを確認したい。.txt ファイルが存在しない場合は、作成して、ユーザーが .txt ファイルにデータを入力できるようにします。このファイルは、UserControl のテキスト ボックスに表示されます。.txt ファイルが既に存在する場合は、.txt ファイルのデータをテキスト ボックスに直接表示します。

ファイルがFORMに存在するかどうかを確認するための私のコード:

private void Form1_Load(object sender, EventArgs e)
    {
        string path1 = @"C:\Users\PK\Documents\Visual Studio 2010\ABC.txt";
        if (!File.Exists(path1))
        {
            File.Create(path1);
        }

        string path2 = @"C:\Users\PK\Documents\Visual Studio 2010\DEF.txt";
        if (!File.Exists(path2))
        {
            File.Create(path2);
        }

        string path3 = @"C:\Users\PK\Documents\Visual Studio 2010\GHI.txt";
        if (!File.Exists(path3))
        {
            File.Create(path3);
        }

        string path4 = @"C:\Users\PK\Documents\Visual Studio 2010\JLK.txt";
        if (!File.Exists(path4))
        {
            File.Create(path4);
        }

        string path5 = @"C:\Users\PK\Documents\Visual Studio 2010\MNO.txt";
        if (!File.Exists(path5))
        {
            File.Create(path5);
        }
    }

.txt ファイルから UserControl の TextBox にテキストを読み取るコード: (これは、残りの 6 つの usercontrol とそのテキスト ボックスで同じです。それに応じて、.txt ファイルとテキスト ボックスの名前のみが異なります。

private void UserControl1_Load(object sender, EventArgs e)
    {
        textBox5.Text = File.ReadAllText(@"C:\Users\PK\Documents\Visual Studio 2010\ABC.txt");
    }

そのため、プログラムを実行すると、次のエラーが表示されます。

IOException が処理されませんでした

別のプロセスで使用されているため、プロセスはファイル 'C:\Users\PK\Documents\Visual Studio 2010\ABC.txt' にアクセスできません。

それで、私は何をすべきですか?

4

1 に答える 1

9

その理由をここに記します。これを試すことができます:-

if(!File.Exists(FilePath)){
    File.Create(FilePath).Close();}
    File.WriteAllText(FileText);
于 2013-08-22T18:49:41.947 に答える