该进程无法访问该文件,因为它正被另一个进程使用

时间:2017-10-07 19:09:25

标签: c# unhandled-exception

我需要删除txt文件中的特定行,这意味着我需要读取并重写整个文件而忽略特定行,我试过但是我得到了unhandled-exeption(该进程无法访问该文件,因为它正被使用另一个过程)。 我在可疑过程中使用的只是:

1。这一行

  IEnumerable<string> text = System.IO.File.ReadAllLines(@"C:\TreeView.txt");

我曾经把所有的行都变成了“字符串”

  1. 这个方法的一部分应该从txt中删除特定的行

            string line = null;
            string filePath = @"c:\TreeView.txt";
    
            using (StreamReader reader = new StreamReader(filePath, true))
    
            {
                using (StreamWriter sw = new StreamWriter(filePath))
                {
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (String.Compare(line, obj) == 0)
                            continue;
    
                        sw.WriteLine(line);
                    }
                }
            }
    

1 个答案:

答案 0 :(得分:3)

问题出在第二部分,您打开文件进行阅读,然后尝试打开它进行写入。你可以简单地做这样的事情:

var text = System.IO.File.ReadAllLines(@"C:\TreeView.txt");
System.IO.File.WriteAllLines(@"C:\TreeView.txt",
    text.Where(x => String.Compare(line, obj) != 0));