如何在不使用第三方程序的情况下杀死特定文件上的过程

  • 本文关键字:情况下 过程 文件 方程序 c#
  • 更新时间 :
  • 英文 :


我有一个test.log文件,我想编程编辑。

string text = File.ReadAllText("test.log");
text = text.Replace("xxx", "yyy");
File.WriteAllText("test.log", text);

,但我收到错误"文件正在使用另一个过程正在使用"。

如何使用此文件杀死该过程?

我使用了此代码Process.GetProcesses(),但这是一个长列表,没有任何有用的信息。另外,此文件是从dll生成的,我无法访问其代码。

我也不能为此目的使用第三方程序,例如lockhunterhandel.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

相关内容

最新更新