删除包含thumbs.db的文件夹

本文关键字:文件夹 db thumbs 包含 删除 | 更新日期: 2023-09-27 18:28:25

有时我无法删除文件夹,因为它包含拇指.db。我有很多文件夹(其中也包含图像),我需要将它们移动到其他地方并删除原始文件夹。但我得到了这个错误:文件夹无法删除,因为"拇指.db";正在被另一个进程使用。移动和删除是在c#中进行的,现在它跳过删除具有thumbs.db的文件夹,这将导致大量空文件夹。有没有办法删除文件夹,即使它有那个文件?

删除包含thumbs.db的文件夹

我提交我的评论作为答案,因为它以这种方式可读性更强:

您可以关闭以下文件的创建:在注册表编辑器中转到HKEY_CURRENT_USER''Software''Microsoft''Windows''CurrentVersion''Policies''Explorer并将NoThumbnailCache条目的值设置为1。

如果没有这个条目,只需创建它(DWORD 32)。

对于Win 7终极版/专业版:HKEY_CURRENT_USER''Software''Microsoft''Windows''CurrentVersion''Explorer''Advanced

禁用ThumbnailCache(DWORD也是)

要删除所有现有文件,请创建一个包含以下内容的批处理文件:

cd c:'
del /s /q thumbs.db

并以管理员身份运行它

找出锁定者

你应该做的第一件事是找出哪个进程持有一个锁。你可以使用Unlocker来找到它。

如果你不能扼杀、控制或退出这个过程

您可以标记要删除的文件。它们将在下次启动时被删除。使用PInvoke并调用传递null作为目的地的MoveFileEx

您可以将其用于文件夹和文件。将文件夹标记为删除就足够了。

这个链接有一些示例代码:

[DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
public static extern bool MoveFileEx(string lpExistingFileName, string lpNewFileName, int dwFlags);
public const int MOVEFILE_DELAY_UNTIL_REBOOT = 0x4;
MoveFileEx(filename, null, MOVEFILE_DELAY_UNTIL_REBOOT);

在我的案例中,最简单的解决方案有所帮助,但我知道它不会每次都有帮助。

  1. 关闭文件资源管理器(这将解锁文件)
  2. 再次打开并尝试删除文件夹

Thumbs.db位于一个原本为空的文件夹中时(与原始问题一样),删除(Thumbs.db和文件夹)通常会被WindowsExplorer阻止。在这种情况下,到目前为止,以下手动操作每次都帮助了我,包括在网络和本地驱动器上:

  1. 在文件夹中放入一个新的jpg,以强制Windows更新Thumbs.db
  2. WindowsExplorer中,将视图从详细信息切换到大图标
  3. 现在可以删除Thumbs.db、新jpg和文件夹本身

我知道这并不能直接解决您想要程序化删除这些文件夹的问题,但也许这个提示可以把您推向一个好的方向。

我不想用借来的羽毛来装饰自己:解决方案就是从这里开始的。

In"控制面板"/"文件资源管理器选项"/查看

  • 取消选中";始终显示图标,从不缩略图"
  • 取消选中";在缩略图上显示图标"

在文件资源管理器菜单中,查看设置平铺

对我来说,现在我可以从网络驱动器中删除Thumbs.db,例如Z:''path''Thumbs.db