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