Как удалить Thumbs.db(он используется другим процессом)

У меня есть простое консольное приложение, которое я пытаюсь удалить из папки:

Directory.Delete(folder,true);

Я получил исключение из раздражающего Thumbs.db

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

Я не могу изменить реестр, чтобы избежать обработки Thumbnail в папке

Каковы мои возможности здесь, чтобы иметь возможность удалять папку со всем в ней?

спасибо

Ответ 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.