日期:2014-05-18  浏览次数:20879 次

C# 写文件的时候appendtext总提示另一进程正在使用该文件
我先打开一个“另存为”对话框

  if (b_folderName2 != null)
  {
  jiaoz2();
  }
  else
  {
  saveFileDialog2.InitialDirectory = MainForm.root;
  saveFileDialog2.RestoreDirectory = true; //在关闭时不恢复当前目录 
  saveFileDialog2.Title = "设置公式2标定文件储存路径";
  saveFileDialog2.Filter = "(*.*)|*.log;*.ini;*.txt";
  if (saveFileDialog2.ShowDialog() == DialogResult.OK)
  {
  createFile2();//这个调用方法里面有一个写文件的操作createFile()
  }
  }


创建文件在对话框里
  private void saveFileDialog2_FileOk(object sender, CancelEventArgs e)
  {
  b_folderName2 = saveFileDialog2.FileName;
  if (!File.Exists(b_folderName2))
  {
  File.Create(@b_folderName2);
  }
  }

  //写文件的方法
  private void createFile2(List<double> xishu)
  {
  FileInfo fi = new FileInfo(@b_folderName2);
  StreamWriter w;
  if (fi.Exists)
  {
  w = fi.AppendText();
  for (int i = 0; i < xishu.Count; i++)
  {
  w.Write(xishu[i] + ",");
  }
  w.WriteLine();
  w.Flush();
  w.Close();
  }
  }

每次都是在 w = fi.AppendText();这里提示“文件正在被另一进程使用。。。”

不知道问题出在什么地方,有时候操作的慢一点,也有可能写入文件成功,哎,不懂啊

顺便给我介绍介绍文件读写常用的方法吧,多谢啦1


------解决方案--------------------
C# code

   using (StreamWriter sw = fi.AppendText()) 
        {
            sw.WriteLine("This");
            sw.WriteLine("is Extra");
            sw.WriteLine("Text");
        }

------解决方案--------------------
记得关闭 流啊