我有一个test.log文件,我想编程编辑。
string text = File.ReadAllText("test.log");
text = text.Replace("xxx", "yyy");
File.WriteAllText("test.log", text);
,但我收到错误"文件正在使用另一个过程正在使用"。
如何使用此文件杀死该过程?
我使用了此代码Process.GetProcesses()
,但这是一个长列表,没有任何有用的信息。另外,此文件是从dll
生成的,我无法访问其代码。
我也不能为此目的使用第三方程序,例如lockhunter
或handel.exe
。
您是否正在寻找类似的东西:
public static List<Process> GetProcessesLockingFile(string filePath)
{
var procs = new List<Process>();
var processListSnapshot = Process.GetProcesses();
foreach (var process in processListSnapshot)
{
Console.WriteLine( process.ProcessName);
if (process.Id <= 4) { continue; } // system processes
var files = GetFilesLockedBy(process);
if (files.Contains(filePath))
{
Console.WriteLine("--------------->" + process.ProcessName);
procs.Add(process);
}
}
return procs;
}
以下是一个可以帮助您的链接。这看起来像是这里使用的确切问题:
https://www.codeproject.com/questions/531409/fileplusisplususedplusbyplusblusblusanotherplusprocessplus