Как удалить файл, который заблокирован другим процессом в С#?
Типичный метод заключается c#-language в следующем. Вы сказали, что c#.net хотите сделать это на C#, так filelock что вот...
- Если вы не знаете, какой процесс заблокировал файл, вам необходимо изучить список дескрипторов каждого процесса и запросить каждый дескриптор, чтобы определить, идентифицирует ли он заблокированный файл. Для выполнения этого на C#, скорее всего, потребуется P/Invoke или промежуточный C++/CLI для вызова необходимых вам собственных API-интерфейсов.
- После того, как вы выяснили, какой процесс (процессы) заблокировал файл, вам нужно будет безопасно внедрить небольшую собственную DLL в процесс (вы также можете внедрить управляемую DLL, но это сложнее, так как затем вам придется запустить или подключиться к среде выполнения .NET).
- Эта загрузочная DLL затем закрывает дескриптор с помощью CloseHandle и т. д.
По существу: способ visual-c# разблокировать «заблокированный» файл c#-language — внедрить DLL-файл в адресное file-locking пространство нарушающего file-locking процесса и закрыть его самостоятельно. Вы .cs-file можете сделать это, используя csharp собственный или управляемый filelock код. В любом случае вам понадобится filelock небольшое количество нативного c# кода или, по крайней мере, P/Invoke.
Полезные visual-c# ссылки:
Удачи!
c#
file-locking
Как удалить файл, который заблокирован другим процессом в С#?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.