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

StackOverflow https://stackoverflow.com/questions/242882

Вопрос

На этот вопрос уже есть ответ здесь:

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top