C# 无法从平面文件c中删除记录

C# 无法从平面文件c中删除记录,c#,c#-4.0,flat-file,C#,C# 4.0,Flat File,我正在尝试使用c作为从文本文件中删除特定行: public static void DeleteProject(int id) { var fileloc = WebConfigurationManager.AppSettings["FFProject-Manager"]; var fileloc2 = WebConfigurationManager.AppSettings["TempFile"]; string line = nul

我正在尝试使用c作为从文本文件中删除特定行:

 public static void DeleteProject(int id)
    {
        var fileloc = WebConfigurationManager.AppSettings["FFProject-Manager"];

        var fileloc2 = WebConfigurationManager.AppSettings["TempFile"];

        string line = null;

        using (StreamReader reader = new StreamReader(fileloc))
        {
            using (StreamWriter writer = new StreamWriter(fileloc2))
            {
                while ((line = reader.ReadLine()) != null)
                {
                    string uidCompare = Convert.ToString(line.Split(',')[0]);
                    string uidToCompare = Convert.ToString(id);
                    if (String.Compare(uidCompare, uidToCompare) == 0)
                        continue;

                    writer.WriteLine(line);
                }

            }

        }

        File.Delete(fileloc);
        File.Move(fileloc2, fileloc);
    }

}
但当我尝试执行时,它会给出如下错误:

The process cannot access the file 'C:\Flat_Files\Project-Manager.txt' because it is being used by another process.

我哪里出错了?

是移动还是删除引发了错误?File.Deletefileloc;删除文件前必须关闭is errorreader。我也这样做了,但没有更改。。我试过了;默认情况下,asp.net进程对App_数据具有写入权限,但不具有修改文件的权限。即,您可以创建新文件,但不能对其进行修改、删除、移动。我发现logger也有类似的问题:看起来logger可以工作,但直到它归档了旧日志。我花了一些时间了解到问题在于缺少对文件夹的“修改”权限,“写入”是不够的。检查文件夹权限。