You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除C# Directory.GetFiles检测到的~$开头Word残留锁定文件?

解决残留的~$开头Word锁定文件删除问题

这种残留的Word锁定文件确实挺闹心——明明开了显示隐藏文件却看不到,只能通过代码检测到,还影响文件计数。给你几个实用的解决办法:

方法一:直接用C#代码删除

既然你的C#程序能检测到这些文件,那直接在代码里处理掉最直接:

string targetDirectory = @"C:\你的目标目录路径";
// 查找所有~$开头的文件
string[] lockFiles = Directory.GetFiles(targetDirectory, "~$*");

foreach (string file in lockFiles)
{
    try
    {
        File.Delete(file);
        Console.WriteLine($"已删除文件:{file}");
    }
    catch (IOException ex)
    {
        Console.WriteLine($"删除文件失败:{file},错误信息:{ex.Message}");
        // 这里可以检查是否有Word进程残留,尝试关闭后再删
    }
}

如果删除时提示文件被占用,记得去任务管理器里看看有没有WINWORD.EXE的后台进程,结束后再重试。

方法二:用命令行强制删除

这些看不到的文件大概率是带有系统隐藏属性,普通的显示隐藏文件设置不会显示系统文件。你可以用命令行先移除属性再删除:

  1. 打开命令提示符(CMD),切换到目标目录:
    cd /d "C:\你的目标目录路径"
    
  2. 移除文件的隐藏和系统属性:
    attrib -h -s "~$*"
    
  3. 现在就能看到这些文件了,直接删除:
    del "~$*"
    

方法三:用PowerShell批量删除

PowerShell的Get-ChildItem命令支持显示所有隐藏/系统文件,结合Remove-Item可以一键删除:

Get-ChildItem -Path "C:\你的目标目录路径" -Filter "~$*" -Force | Remove-Item -Force

这里的-Force参数是关键,它会让PowerShell显示所有隐藏和系统属性的文件,然后直接强制删除。

额外注意事项

  • 操作前务必确认Word已经完全关闭,包括后台的WINWORD进程,否则可能删除失败。
  • 如果是网络共享目录的文件,还要确保没有其他用户正在打开对应的Word文档。

内容的提问来源于stack exchange,提问作者Mike Jablonski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:22:50