我創建了兩個服務。我想刪除一個文件夾,但該文件夾由我的第一個服務使用。當我執行第一個服務後,我執行第二個服務,它工作正常。但是,當我嘗試同時執行這兩項服務時,它無法正常工作。如何刪除另一個進程已打開的文件夾?
1
A
回答
5
實際上,問題應該是「應用程序中的內容可能會阻止文件夾被其他應用程序刪除」。
可能性是:
你的服務打開某些文件,該文件夾中,並沒有將其關閉。檢查您在服務中打開的所有文件,並關閉該文件夾中的文件。
文件如何關閉取決於它們是如何打開的。如果你使用CreateFile(),那麼用CloseHandle()關閉。如果是TFileStream,那麼只需銷燬它。您的服務將該文件夾設置爲當前目錄。使用SetCurrentDir選擇其他目錄作爲當前目錄。
1
除非您可以通過發送消息來停止使用文件夾(或其內容),否則在刪除它之前您無法刪除它。
0
如果第二項服務在第二項服務之前啓動,那麼您可以刪除文件夾,但如果兩項服務一起啓動,則無法刪除文件夾。
唯一的區別是您允許第一個服務完成與文件夾一起工作的時間。
需要考慮的事情:
如果你的第一個服務使用的文件夾,那麼你將不能夠像已經提到的,直到你的服務關閉與該文件夾的連接將其刪除。
相關問題
- 1. 如何刪除已打開的文件?
- 2. 如何在已刪除的文件夾中刪除已刪除的文件
- 3. 如何強制刪除另一個進程正在使用的文件夾?
- 4. 無法從批處理文件夾中刪除文件夾或文件在另一個程序中打開
- 5. 文件夾刪除錯誤shutil.rmtree,另一個進程正在使用的文件
- 6. 無法刪除文件。另一個進程使用的文件
- 7. 將文件夾內容與另一個文件夾進行比較並刪除
- 8. 已刪除.eclipse文件夾
- 9. Gulp:如何刪除一個文件夾?
- 10. 如何判斷一個文件夾已被永久刪除
- 11. BAT文件在另一個文件夾中打開另一個bat文件
- 12. 檢查一個文件是否從另一個進程打開
- 13. 一個腳本來自動刪除另一個文件夾中的文件夾
- 14. 如何防止perforce打開/移動已刪除的文件?
- 15. 如何檢查一個文件是否被另一個進程(Java/Linux)打開?
- 16. Android:你如何刪除一個文件夾開始於期間
- 17. 如何檢查一個文件是否已被C中的另一個進程打開?
- 18. 批處理文件刪除另一個文件夾內的文件夾
- 19. 打開另一個進程正在使用的文件
- 20. 打開另一個進程正在使用的文件
- 21. 刪除c#中另一個進程使用的文件
- 22. 進程無法訪問該文件,因爲它正在被另一個進程使用(要刪除文件夾)
- 23. 如何打開一個窗體,如果窗體位於另一個文件夾
- 24. 如何刪除複製到另一個文件夾後的Zip文件
- 25. 如何刪除被C#中的另一個進程鎖定的文件?
- 26. 刪除與vb.net一個文件,該文件是在另一個進程
- 27. 如何打開文件夾?
- 28. 重命名另一個進程中打開文件而不FILE_SHARE_DELETE
- 29. 計數已刪除的空文件夾
- 30. GIT恢復已刪除的文件夾
(-1)請問一個正確的問題,目前無法找出你想要做的事情。另外,我會冒昧減少問題中問號的數量:) – 2010-10-25 11:58:26
@Pekka:也許問號是問題主題的一部分? (種文件系統佔位符)。 ;-) – splash 2010-10-25 12:02:03
@splash ahaha,誰知道! :) – 2010-10-25 12:02:25