Узнайте, кто блокирует
Первое, что вы должны сделать, это выяснить, какой процесс удерживает блокировку. Вы можете использовать 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);