遇到一个不解的有关问题,求解:uninstall.exe为什么能删除自己

遇到一个不解的问题,求解:uninstall.exe为什么能删除自己?
我制作了一个卸载程序unstall.exe,它需要完成的一个工作是删除程序所在的文件夹里所有的文件(以及它自己),最后删除文件夹。

但是我一直犯难:unstall.exe启动以后,它怎样删除自己?它正在执行,一个可执行文件在执行的时候,我感觉是无法删除的。

可是我在unstall.exe里面加了一段代码,主要是枚举、遍历带个文件夹,找出所有文件,然后全部删除。

没想到的是:删除成功了!连同unstall.exe自身全部被删除,最后连文件夹也删除成功了。这当然是我希望的,不过我真的不理解,心里也没底,现在把代码列上,麻烦各位帮我看看,为什么uninstall.exe能删除自己?
WIN32_FIND_DATA FindData[256];
HANDLE hFindFile;
int FindNum;
memset(FindData, 0, sizeof(FindData));
FindNum = 0;
strcpy(str, zywbProgramPath);
if((hFindFile = FindFirstFile(strcat(str, "\\*.*"), FindData)) != INVALID_HANDLE_VALUE)
{
do
{ FindNum ++;}
while(FindNextFile(hFindFile, FindData + FindNum));
}
FindClose(hFindFile);
for(int i = 0; i < FindNum; i++)
{
strcpy(str, zywbProgramPath);
strcat(str, "\\");
DeleteFile(strcat(str, FindData[i].cFileName));
}
strcpy(str, zywbProgramPath);
RemoveDirectory(str);

以上一段代码就是unstall.exe中的,它为什么能删除unstall.exe本身?以后会一直成功吗?
------解决方案--------------------
确实很奇怪,是不是你操作系统比较特殊