3

以下のコードを使用してCSVファイルを作成しています。

  using(StreamWriter sw = new StreamWriter(AbsolutePathAndFileName))
  {
        //write header line
        int iColCount = TheDataTable.Columns.Count;
        for (int i = 0; i < iColCount; i++)
        {
            sw.Write(TheDataTable.Columns[i]);
            if (i < iColCount - 1)
            {
                sw.Write(separator);
            }
        }
        sw.Write(sw.NewLine);

        //write rows
        foreach (DataRow dr in TheDataTable.Rows)
        {
            for (int i = 0; i < iColCount; i++)
            {
                if (!Convert.IsDBNull(dr[i]))
                {
                    string data = dr[i].ToString();
                    data = data.Replace("\"", "\\\"").Replace(",", " ");
                    sw.Write(data);
                }
                if (i < iColCount - 1)
                {
                    sw.Write(separator);
                }
            }
            sw.Write(sw.NewLine);
        }
        sw.Close();
    }

その後、レビューのためにそのファイルを開きます。現在、ファイルはオープンモードになっています。

しかし、そのファイルを再度再生成すると、許可されず、ファイルが別のプロセスによって使用されていると表示されます。

この問題の解決策はありますか? そのファイルを削除または閉じる必要があります

4

1 に答える 1

2

ステートメントが確実に破棄されるようStreamWriterに、ステートメントでラップする必要があります。using

必要なときにファイルを読み取り専用モードで開いていますか?

using (FileStream f = File.Open("c:\\software\\code.txt", FileMode.Open, FileAccess.Read, FileShare.None)
{

}
于 2013-01-11T05:49:12.523 に答える