

Windows中如何查找某个文件被那个程序占用
方法 1: 使用资源监视器 (Resource Monitor)
任务管理器里切换到 “性能” 选项卡,找到 “资源监视器” 打开。
在资源监视器中,切换到 “CPU” 选项卡。展开 “关联的句柄” 部分。在搜索框中输入文件名或文件路径(可以部分匹配),然后按 Enter 键。
***推荐:
方法 2: 使用 Sysinternals 的 Handle 工具
下载 Handle工具:https://learn.microsoft.com/en-us/sysinternals/downloads/handle
解压后放到C盘并在cmd下切换到该目录。运行以下命令来查找文件句柄:
语法:
handle64.exe filename //将 filename 替换为你要查找的文件的名称或路径。
例:C:\Handle>Handle64.exe 人力行政部值班班表.xlsx
***注:最后发现是个et.ext的程序占用,经查为wps目录的程序,此程序占用导致同步工具不能同步该表格
==================以下未测试====================
方法 3: 使用 PowerShell
你可以使用 PowerShell 脚本来查找文件占用情况:
# 替换为你要查找的文件路径
$filePath = "C:\Path\To\YourFile.txt"
# 查找文件句柄
Get-Process | ForEach-Object {
$process = $_
$process.HandleCount | Out-Null
$handles = Get-Process -Id $process.Id | Select-Object -ExpandProperty Handles
foreach ($handle in $handles) {
try {
$handleName = [System.IO.Path]::GetFullPath($handle.Name)
if ($handleName -eq $filePath) {
[PSCustomObject]@{
ProcessName = $process.ProcessName
ProcessId = $process.Id
}
}
} catch {
# Handle exceptions if needed
}
}
}
方法 4: 使用第三方工具
LockHunter: 这是一个免费的工具,可以显示哪些程序锁定了文件并允许你解锁文件。
Process Explorer: 另一个 Sysinternals 工具,提供更详细的进程信息和句柄搜索功能。
下载 Process Explorer:https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer
启动 Process Explorer。使用 “Find” 功能(按 Ctrl + F),输入文件名或路径。
查看结果:
Process Explorer 会显示哪个进程正在使用该文件,你可以在 “Handles” 视图中找到相关信息。
这些方法都可以帮助你确定哪个程序或进程正在使用特定的文件。