Я создал две службы. Я хочу удалить папку, но эта папка используется моей первой службой. Когда я выполняю первую услугу после этого, я выполняю вторую службу, она отлично работает. Но когда я пытаюсь выполнить оба сервиса одновременно, это не работает должным образом.Как удалить папку, открытую другим процессом?
ответ
На самом деле вопрос должен быть «Что в приложении может помешать папке удалить из других приложений».
Возможности:
Ваша служба открывает какой-то файл в этой папке и не закрывает его. Проверьте все файлы, которые вы открываете в службе, и закройте те, которые находятся в этой папке.
Как файлы закрыты, зависит от того, как они были открыты. Если вы использовали CreateFile(), закройте CloseHandle(). Если это был TFileStream, то просто уничтожьте его.В вашей службе указан этот каталог как текущий каталог. Выберите другой каталог как текущий с помощью SetCurrentDir.
И ответ на вопрос в заголовке тогда будет следующим: вы не можете, по крайней мере, не под Windows. (например, Linux позволяет удалять файлы и папки, которые используются, что может раздражать, если вы к этому не привыкли). – dummzeuch
@himself - номер 2 не работает. Я попробовал это. – Ampere
Вы не можете удалить его, если только вы не можете сообщить другой службе, отправив сообщение, чтобы прекратить использование папки (или ее содержимого) перед ее удалением.
Если первая услуга запускается до второй службы, вы можете удалить папку, но если обе службы запущены вместе, вы не можете удалить папку.
Единственное отличие - вы разрешили время для первого обслуживания, чтобы закончить работу с папкой.
Вещи рассмотреть:
Если первая служба использует папку, то вы не сможете удалить его, пока ваша служба не закроет соединение с этой папки, как уже упоминалось.
- 1. Удалить изображение, используемое другим процессом
- 2. Как удалить папку с запущенным процессом ConsoleApplication
- 3. Как удалить файл, используемый другим процессом?
- 4. Невозможно удалить файл - Файл используется другим процессом
- 5. картинка используется другим процессом
- 6. File.Delete используется другим процессом
- 7. Файл используется другим процессом после команды File.Copy
- 8. Qt запоминает последнюю открытую папку
- 9. Файл используется другим процессом
- 10. dll используется другим процессом
- 11. «используется другим процессом»?
- 12. Файл используется другим процессом
- 13. наблюдение за другим процессом
- 14. Пакетная команда: как закрыть открытую папку?
- 15. Как использовать открытую папку WAR в Netbeans
- 16. как узнать, какой файл используется другим процессом
- 17. Не удается удалить файл, так как он используется другим процессом
- 18. Как удалить файл, который заблокирован другим процессом на C#?
- 19. C# ASP.NET Как удалить файл, который «используется» другим процессом?
- 20. Файл используется другим процессом
- 21. Файл TransmitFile используется другим процессом
- 22. Normal.dotm используется другим процессом?
- 23. Ошибка «используется другим процессом»
- 24. System.IO.IOException используется другим процессом
- 25. Не удается удалить папку, потому что она используется другим> процессом (мое приложение)
- 26. IOException: файл используется другим процессом
- 27. Как программно сделать функцию, открытую ровно одним процессом?
- 28. Удаление JPEG не разрешено (используется другим процессом)
- 29. Удалить файл, который используется другим процессом в C#
- 30. Java не удается удалить файл, он используется другим процессом
(-1) Пожалуйста, задайте правильный вопрос, и сейчас невозможно узнать, что вы хотите сделать. Кроме того, я позволю себе уменьшить количество вопросительных знаков в вашем вопросе :) –
@Pekka: Может быть, вопросительные знаки были частью вопроса? (вид заполнителей файловой системы). ;-) – splash
@splash ahaha, кто знает! :) –