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

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

Directory.Delete(folder,true);

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

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

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

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

Спасибо

3 ответа

Решение

Вы можете узнать, какой процесс блокирует его с помощью 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", вы можете отключить его в реестре. Откройте редактор реестра, перейдите к 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,

Чтобы удалить файлы Thumbs.db, которые находились на сетевом диске для Windows 10, мне пришлось зайти в « Редактор локальной групповой политики » в разделе « Конфигурация пользователя/Административные шаблоны/Компоненты Windows/Проводник » и включить « Отключить кэширование ». миниатюр в настройках скрытых файлов thumbs.db . Затем зайдите в диспетчер задач и перезапустите проводник Windows.

Удалить файл с именем thumbs.db можно, предварительно переименовав файл (например, в x.db). После переименования файла удалить его не проблема.

Другие вопросы по тегам