gpt4 book ai didi

visual-c++ - VC++ 中的 SelfDeleting 应用程序?

转载 作者:行者123 更新时间:2023-12-02 08:58:43 25 4
gpt4 key购买 nike

我想删除包含当前正在运行的应用程序的文件夹。我该怎么做..?有什么办法可以做到吗?即包含应用程序的文件夹应在应用程序完成运行后删除?

最佳答案

您最好的选择可能是使用 Win32 API MoveFileEx 。它有一个标记,可以设置为在下次重新启动时删除正在使用的文件,称为 MOVEFILE_DELAY_UNTIL_REBOOT。将 MoveFileEx 的新文件名参数设置为 NULL 以执行此类删除。

If dwFlags specifies MOVEFILE_DELAY_UNTIL_REBOOT and lpNewFileName is NULL, MoveFileEx registers the lpExistingFileName file to be deleted when the system restarts.

注意:可以使用 Win32 API DeleteFile 正常删除正在使用的普通文件。取决于它们是否使用 FILE_SHARE_DELETE 权限打开(使用 Win32 API CreateFile)。不过,我认为在 Windows 上默认运行的程序没有该权限。当指定删除正在使用但使用此标志打开的文件时,当最后一个文件句柄关闭时,该文件将被删除。

关于visual-c++ - VC++ 中的 SelfDeleting 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2987210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com