用以下代码对一个文件夹进行对txt文件的遍历,遍历后对其中的某些txt文件进行删除操作,文件不会立即删除,直到程序结束后才删除,是不是这些代码对那些文件有临时保护作用啊? lstrcpy(szFind, "D:\\");
lstrcat(szFind, "*.txt");
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(szFind, &wfd);
if(hFind == INVALID_HANDLE_VALUE)return;// 如果没有找到或查找失败
int i=0;
do{
if (wfd.cFileName[0] == '.')
continue; // 过滤这两个目录
wsprintf(szFileName, "%s", wfd.cFileName);
CString temp=(CString)szFileName;
int position=temp.ReverseFind('.');
temp=temp.Left(position);
wsprintf(szFile,"%s%s",NotePath,szFileName);
HANDLE hDir = CreateFile (szFile,0,FILE_SHARE_READ|FILE_SHARE_DELETE|FILE_SHARE_WRITE,NULL, OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS, NULL);
}
while (FindNextFile(hFind, &wfd));
FindClose(hFind); // 关闭查找句柄
lstrcat(szFind, "*.txt");
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(szFind, &wfd);
if(hFind == INVALID_HANDLE_VALUE)return;// 如果没有找到或查找失败
int i=0;
do{
if (wfd.cFileName[0] == '.')
continue; // 过滤这两个目录
wsprintf(szFileName, "%s", wfd.cFileName);
CString temp=(CString)szFileName;
int position=temp.ReverseFind('.');
temp=temp.Left(position);
wsprintf(szFile,"%s%s",NotePath,szFileName);
HANDLE hDir = CreateFile (szFile,0,FILE_SHARE_READ|FILE_SHARE_DELETE|FILE_SHARE_WRITE,NULL, OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS, NULL);
}
while (FindNextFile(hFind, &wfd));
FindClose(hFind); // 关闭查找句柄
{
SHFILEOPSTRUCT op;
memset(&op, 0, sizeof(op));
op.pFrom = fname;
op.fFlags = FOF_ALLOWUNDO;
op.wFunc = FO_DELETE;
if (SHFileOperation(&op) != 0)
{
return false;
}
return true;
}