0

私は問題に直面しています。私のプログラムでは、デスクトップにファイルを作成します。

        var desktopFolder = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        var fullFileName = Path.Combine(desktopFolder, "Report.txt");
        var fs = new FileStream(fullFileName, FileMode.Create);

        StreamWriter sw = new StreamWriter(fs);

[...ファイルに書き込み中...]

        sw.WriteLine("Report generated with***.");
        sw.Flush();
        sw.Close();
        sw.Dispose();
        fs.Close();
        fs.Dispose();

その後、ファイルが完成した後、もう一度読んでいます:

        FileInfo fi = new FileInfo(fullFileName);
        StreamReader objReader = new StreamReader(fi.OpenRead());
        string sLine = "";
        while (sLine != null)
        {
            sLine = objReader.ReadLine();
            if (sLine != null)
            {
                Report.Items.Add(sLine);
            }
        }

問題は、ファイルを 2 回読み取ろうとすると、エラーが発生することです。別のプロセスで使用されているため、プロセスはファイルにアクセスできません。何が間違っているのでしょうか?

4

2 に答える 2

0

このコードを使用してファイルを操作します

using (StreamWriter s = new StreamWriter(/* your arguments here *\)) {
    // code that uses it here
}
// file is closed here
于 2013-11-07T23:08:27.207 に答える