我创建了两个服务。我想删除一个文件夹,但我的第一个服务使用该文件夹。当我执行第一个服务后,我执行第二个服务,它工作正常。但是,当我尝试同时执行这两项服务时,它无法正常工作。
答案 0 :(得分:5)
实际上,问题应该是“应用程序中的内容可能阻止其他应用程序删除文件夹”。
可能性是:
您的服务会在该文件夹中打开一些文件,但不会将其关闭。检查您在服务中打开的所有文件,并关闭该文件夹中的文件 文件的关闭方式取决于文件的打开方式。如果您使用CreateFile(),则使用CloseHandle()关闭。如果它是TFileStream,那么只需销毁它。
您的服务已将该文件夹设置为当前目录。使用SetCurrentDir选择其他目录作为当前目录。
答案 1 :(得分:1)
你不能删除它,除非你可以通过发送邮件告诉其他服务停止使用该文件夹(或其内容),然后再删除它。
答案 2 :(得分:0)
如果在第二次服务之前启动第一项服务,则可以删除文件夹,但如果两种服务一起启动,则无法删除文件夹。
唯一的区别是您允许第一次服务完成文件夹的时间。
需要考虑的事项:
如果您的第一个服务正在使用该文件夹,那么在您的服务关闭与该文件夹的连接之前,您将无法将其删除。