Подтвердить что ты не робот

Как я могу разблокировать файл, который заблокирован процессом в .NET.

Я хочу, чтобы мое приложение очистило все временные файлы, которые он использовал, проблема в том, что не все временные файлы находятся под моим контролем, поэтому я просто хочу "жестоко" разблокировать их, чтобы их программно удалить.

4b9b3361

Ответ 1

Взгляните на эту статью. Я думаю, что вы будете пытаться сделать это на С# изначально, даже используя interop, но сборка С++/CLI-обертки может быть хорошим компромиссом. Также обратите внимание, что пользователю необходимо иметь привилегию SE_DEBUG для этого.

Ответ 2

Я тоже боролся с этим, и закончил тем, что просто обстреливал реализацию командной строки Unlocker. В моем случае он должен запускаться много раз в день и заканчивает разблокировку тысяч файлов в день без каких-либо проблем.

Ответ 3

Конечно, ваше приложение хочет очистить файлы temp, которыми он владеет, тогда у вас есть полный контроль над разблокировкой этих файлов и их удалением!

Если вы хотите удалить все файлы TEMP, принадлежащие вашему приложению или иным образом, вы должны быть ОЧЕНЬ осторожны. Исходное приложение, вероятно, применило блокировку, потому что хочет использовать файл!

Если вам действительно нужно, вы всегда можете создать приложение командной строки, а не пытаться реплицировать функциональность существующих инструментов, что будет сложно в С#.

Ответ 4

Посмотрите thread на форумах MSDN. Там достаточно информации, чтобы делать то, что вы хотите, но ее не рекомендуется.