Как удалить 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). После переименования файла удалить его не проблема.