V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chanlk
V2EX  ›  问与答

为什么 Windows 不告诉你谁在使用这个文件?

  •  
  •   chanlk · 2020-03-24 17:28:09 +08:00 · 1811 次点击
    这是一个创建于 1710 天前的主题,其中的信息可能已经有所发展或是发生改变。

    删除文件或者修改文件名的一些操作的时候,文件处于在使用的状态下是无法进行这些操作的。但是问题是很多时候我找不到谁在用它,为什么 Windows 不告诉你哪个程序正在使用这个文件呢? 或者有什么姿势可以快速找到是哪个程序在用它吗?

    8 条回复    2020-03-24 21:19:04 +08:00
    Vegetable
        1
    Vegetable  
       2020-03-24 17:35:37 +08:00   ❤️ 2
    资源监视器搜索关联的句柄

    任务管理器-性能-打开资源监视器-搜索关联的句柄
    Vegetable
        2
    Vegetable  
       2020-03-24 17:36:16 +08:00
    任务管理器-性能-打开资源监视器-切换到 CPU 页-搜索关联的句柄
    minami
        3
    minami  
       2020-03-24 17:55:16 +08:00
    IObit Unlocker
    chanlk
        4
    chanlk  
    OP
       2020-03-24 17:57:50 +08:00
    @Vegetable 学到了,感谢感谢!
    geelaw
        5
    geelaw  
       2020-03-24 18:26:19 +08:00 via iPhone   ❤️ 3
    Windows 有尝试的,见

    https://devblogs.microsoft.com/oldnewthing/20120217-00/?p=8283

    https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ifileisinuse

    后者( IFileIsInUse )是应用程序汇报自己使用文档 /媒体文件的方法,它允许用户查询是哪个程序的哪个窗口在使用它,并允许用户请求关闭该程序。

    前者( Restart Manager )是 Windows 内核提供的方法,它可以找到使用文件的所有进程。

    然而并不是所有的信息都有意义,在没有 IFileIsInUse 的情况下,是无法确切得知“应该找哪个程序解决问题”的,比如说一个文件可能被一个 COM server 打开,而惟一能逻辑上正确关闭文件的是 COM client,这时提示用户关掉 COM server 基本上是没有意义的。又比如一个文件被某个服务打开,而它打开的原因是为了服务某个程序,这时正确的指引方向是程序而不是服务。
    yongliu
        6
    yongliu  
       2020-03-24 18:30:53 +08:00
    ybw
        7
    ybw  
       2020-03-24 21:00:25 +08:00 via Android
    这是 Windows 的产品经理没做好事了
    loading
        8
    loading  
       2020-03-24 21:19:04 +08:00 via Android
    wholockme,小巧好用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:53 · PVG 10:53 · LAX 18:53 · JFK 21:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.