我正在使用C#上的文件,我的cose应该删除文件中的一些行,如下所述:
var tmpFile = Path.GetTempFileName();
var LinesToKeep = File.ReadLines(path).Where(l => l.StartsWith("removeme")==false);
File.WriteAllLines(tmpFile, LinesToKeep);
File.Delete(path);
File.Move(tmpFile,path);
但是我在运行代码时遇到异常:IOException was unhandled
:
说明中的该进程无法访问该文件,因为该文件正由另一个进程
使用
:File.Delete(path);
如何检查哪个进程正在使用文件,或者我的问题还有其他原因?
答案 0 :(得分:1)
使用FileShare枚举来指示操作系统允许其他进程(或您自己进程的其他部分)同时访问同一文件。
using (var stream = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.Read))
{
}