删除包含thumbs.db的文件夹
本文关键字:文件夹 db thumbs 包含 删除 | 更新日期: 2023-09-27 18:28:25
有时我无法删除文件夹,因为它包含拇指.db。我有很多文件夹(其中也包含图像),我需要将它们移动到其他地方并删除原始文件夹。但我得到了这个错误:文件夹无法删除,因为"拇指.db";正在被另一个进程使用。移动和删除是在c#中进行的,现在它跳过删除具有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);
在我的案例中,最简单的解决方案有所帮助,但我知道它不会每次都有帮助。
- 关闭文件资源管理器(这将解锁文件)
- 再次打开并尝试删除文件夹
当Thumbs.db
位于一个原本为空的文件夹中时(与原始问题一样),删除(Thumbs.db
和文件夹)通常会被WindowsExplorer阻止。在这种情况下,到目前为止,以下手动操作每次都帮助了我,包括在网络和本地驱动器上:
- 在文件夹中放入一个新的jpg,以强制Windows更新
Thumbs.db
- 在WindowsExplorer中,将视图从详细信息切换到大图标
- 现在可以删除
Thumbs.db
、新jpg和文件夹本身
我知道这并不能直接解决您想要程序化删除这些文件夹的问题,但也许这个提示可以把您推向一个好的方向。
我不想用借来的羽毛来装饰自己:解决方案就是从这里开始的。
In"控制面板"/"文件资源管理器选项"/查看
- 取消选中";始终显示图标,从不缩略图"
- 取消选中";在缩略图上显示图标"
在文件资源管理器菜单中,查看设置平铺。
对我来说,现在我可以从网络驱动器中删除Thumbs.db,例如Z:''path''Thumbs.db