【问题标题】:How to delete Thumbs.db (it is being used by another process)如何删除 Thumbs.db(它正被另一个进程使用)
【发布时间】:2014-08-02 18:32:41
【问题描述】:

我有一个简单的控制台应用程序,我正在尝试删除一个文件夹:

Directory.Delete(folder,true);

烦人的 Thumbs.db 除外

The process cannot access the file 'Thumbs.db' because it is being used by another process.

我无法更改注册表以避免在文件夹中处理缩略图

这里有哪些选项可以删除包含所有内容的文件夹?

谢谢

【问题讨论】:

  • thumbs.db 由 Windows shell 使用/拥有。确保该文件夹在任何窗口中都不可见(文件夹上没有打开的视图),并且您应该能够删除该文件。
  • 您可能需要检查this link,它直截了当,无需手动破解注册表。
  • 我通常在删除之前通过重命名 thumbs.db 手动解决此问题。我从未尝试过以编程方式执行此操作,但值得一试。

标签: c# .net


【解决方案1】:

您可以使用Unlocker 找出阻止它的进程。如果您无法终止该进程,您可以使用MoveFileEx 标记此文件或文件夹以在下次启动后立即删除。

[DllImport("kernel32.dll")]
public static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName, int dwFlags);

public const int MOVEFILE_DELAY_UNTIL_REBOOT = 0x4;

//Usage:
MoveFileEx(fileName, null, MOVEFILE_DELAY_UNTIL_REBOOT);


如果您想完全禁用“Thumbs.db”-Files 的创建,您可以在注册表中将其关闭。打开注册表编辑器,导航到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 并将NoThumbnailCache 的值设置为1。如果此条目不存在,您只需创建它 (DWORD 32)。

对于 Win7 Professional / Ultimate,条目的路径是 HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Explorer\Advanced,它的名称是 DisableThumbnailCache

【讨论】:

    【解决方案2】:

    要删除驻留在 Windows 10 网络驱动器上的 Thumbs.db 文件,我必须进入“用户配置/管理模板/Windows”下的“本地组策略编辑器”组件/文件资源管理器”并启用“关闭隐藏的 thumbs.db 文件中缩略图的缓存”设置。然后进入任务管理器并重新启动 Windows 资源管理器。

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 2012-08-04
      • 2014-05-26
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      相关资源
      最近更新 更多