写了段用于创建文件的代码,大致功能是判断文件是否存在,如不存在就创建该文件,如果存在就对文件内容清空,代码如下,运行时出现问题:在没有该文件存在要创建时报文件进程被占用。请教大家问题在哪,代码如下:
              StreamWriter sw;
                if (!File.Exists(para.wpath + "\\data\\time.dat"))
                {
                    if (!Directory.Exists(para.wpath + "\\data"))
                    {
                        Directory.CreateDirectory(para.wpath + "\\data");
                        File.CreateText(para.wpath + "\\data\\time.dat");
                    }
                    else
                    {
                        File.CreateText(para.wpath + "\\data\\time.dat");                    }
                }
                else
                {
                    File.WriteAllText(para.wpath + "\\data\\time.dat", "");
                }
                 sw= new StreamWriter(para.wpath + "\\data\\time.dat");
                 sw.WriteLine("98547");
                 sw.Close();C#

解决方案 »

  1.   

    把流关闭掉。
     if (!Directory.Exists("\\data"))
                    {
                        Directory.CreateDirectory("\\data");
                        StreamWriter writer = File.CreateText("\\data\\time.dat");
                        writer.Close();
                    }
      

  2.   

     if (!Directory.Exists(para.wpath + "\\data"))
                {
                    Directory.CreateDirectory("\\data");
                }
                if (!File.Exists(para.wpath + "\\data\\time.dat"))
                {
                    File.WriteAllText(para.wpath + "\\data\\time.dat","", Encoding.GetEncoding("gb2312"));//直接这个就行了
                }
      

  3.   


    您好 按您说的成功了,后面这段代码只能写入第一行数据,以前用过不是这样的,能麻烦看看吗?
     private void button2_Click(object sender, EventArgs e)     //确定按钮,导出time
            {
                //===================================================获取数据点数
                for (int i = 1; i < 49; i++)
                {
                    TextBox tb = this.groupBox1.Controls["textBox" + i.ToString()] as TextBox;
                    if (tb.Text == "")
                    {
                        tnum = (i - 1) / 2;
                        break;
                    }            }
                //======================================================写time.dat文件
                StreamWriter sw;
                if (para.curnum == "1")
                {
                    para.timenum = tnum;
                    if (!File.Exists(para.wpath + "\\data\\time.dat"))
                    {
                        if (!Directory.Exists(para.wpath + "\\data"))
                        {
                            Directory.CreateDirectory(para.wpath + "\\data");
                            sw = File.CreateText(para.wpath + "\\data\\time.dat");
                            sw.Close();
                        }
                        else
                        {
                            sw = File.CreateText(para.wpath + "\\data\\time.dat");
                            sw.Close();
                        }
                    }
                    else
                    {
                        File.WriteAllText(para.wpath + "\\data\\time.dat","");
                    }                sw = new StreamWriter(para.wpath + "\\data\\time.dat");                for (int i = 1; i == tnum; i++)
                    {
                        TextBox tb = this.groupBox1.Controls["textBox" + (2 * i - 1).ToString()] as TextBox;
                        sw.WriteLine("S_time(" + i.ToString() + ") =" + (int.Parse(tb.Text) * 3600).ToString());
                    }
                    sw.Close();
                } 
      

  4.   

    for 语句使用问题...低级了