從應用程序中我想刪除一個文件夾。問題是該文件夾還包含該應用程序。所以,只要應用程序正在運行,文件夾被鎖定。我如何刪除該文件夾?如何刪除運行應用程序(self)的文件夾?
第一個想法是在'Temp'中製作該應用程序的副本並從那裏運行它。這樣它會釋放文件夾。雖然不是一個非常優雅的解決方案....
操作系統是Win7,但它應該可以在Win2K上運行到Win 8. 目標是讓應用程序自我卸載(清理其文件夾,然後自我刪除)。
有人建議,如果我在我的應用程序中這樣做,它將工作。它沒有。
SetCurrentDir(SomeOtherFolder);
作爲[dummzeuch說](猜測此問題)(http://stackoverflow.com/questions/4014268/how-do-i-delete-a-folder-that-another-process-has-open#comment4312030_4014883),猜測這個可能無法做到。你在這裏的最終目標是什麼? – admdrew
可能的重複http://stackoverflow.com/q/4014268 –
只要您的應用程序正在運行,您就無法做到這一點。如果您需要將應用程序保留在屏幕上,而正在運行的文件夾正在被刪除,那麼您運氣不好。另一方面,如果你只想關閉所有東西,擺脫它運行的exe和文件夾,那應該是可行的。我會創建一個小型清理應用程序,將其複製到臨時文件夾,與您所建議的內容非常相似。然後從主應用程序運行清理應用程序並退出。清理應用程序然後刪除所有內容並退出。 –