我自己在写一个程序,其中一个收尾功能实现就是在 10 个文件写完后,判断当前目录的这些文件是否为空,如果是就删除,然后程序结束。 这里面遇到两个问题:
- 程序在结束前,那 10 个文件一直被占用,根本没法删除
- 我写了删除运作,实际却不起作用。 以下我代码的片断 (完全编程小白,不要笑代码烂,东抄西凑)
删除我使用了 _unlink() , remove() 都是一样的,可是实在无力解决。
_chdir(dir);
HANDLE hFind;
WIN32_FIND_DATA FindData;
hFind = FindFirstFile("./*.txt", &FindData);
while (FindNextFile(hFind, &FindData))
{
FILE *Emptyfp;
char ch[40];
strcpy(ch, FindData.cFileName);
if ((Emptyfp = fopen(FindData.cFileName, "r")) == NULL)
{
printf("未生成 ioLogik 文件!\n");
exit(0);
}
//ch = fgetc(Emptyfp);
//if (feof(Emptyfp) == 0)
//{
//printf("%s 文件为空\n",FindData.cFileName);
printf("%s\n",ch);
_unlink(ch);
//}
}
// Close the file handle
FindClose(hFind);