删除包含thumbs.db的文件夹

时间:2012-03-19 09:23:37

标签: c# windows-7

有时我无法删除文件夹,因为它包含thumbs.db。我有很多文件夹(也包含图像),我需要在不同的地方移动它们并删除原始文件夹。但我收到此错误:无法删除该文件夹,因为另一个进程正在使用“thumbs.db”。移动和删除是在c#中进行的,现在它会跳过删除具有thumbs.db的文件夹,这会导致很多空文件夹。有没有办法删除该文件夹,即使它有该文件?

4 个答案:

答案 0 :(得分:4)

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

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

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

对于Win 7旗舰版/专业版: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced

DisableThumbnailCache (也是DWORD)

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

cd c:\

del /s /q thumbs.db

以管理员

运行

答案 1 :(得分:2)

找出锁定的人

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

如果您无法杀死,控制或退出该过程

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

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

此链接包含一些示例代码:

[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);

答案 2 :(得分:0)

就我而言,最简单的解决方案有所帮助,但是我知道它并不能每次都提供帮助。

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

答案 3 :(得分:0)

在“控制面板” /“文件资源管理器选项” /视图中

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

在文件浏览器菜单中的视图集标题

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