ULARGE_INTEGER lpuse;
ULARGE_INTEGER lptotal;
ULARGE_INTEGER lpfree;
//得到DiskName中指定的盘符的总空间、已用空间、剩余空间
GetDiskFreeSpaceEx(DiskName,&lpuse,&lptotal,&lpfree);
CString str;
str.Format("当前磁盘剩余空间:%4.4fGB/n",lpfree.QuadPart/1024.0/1024.0/1024.0);
TRACE(str);
//如果当前盘的可用空间小于300M时就查找当前目录下的最早的那个文件夹进行删除操作
if ((lpfree.QuadPart/1024.0/1024.0) < 300.0)
{
CString m_cstrFileList="";
CFileFind tempFind;
BOOL bFound = TRUE;
//得到当前目录
m_cstrFileList += mRecordPath + "//*";
bFound=tempFind.FindFile(m_cstrFileList);
CString strTmp;
while(bFound)
{
bFound = tempFind.FindNextFile(); //查找文件
if(!tempFind.IsDots())
{
if(tempFind.IsDirectory())
{
strTmp = mRecordPath + "//";
strTmp += tempFind.GetFileName();
//得到找到的那个文件名
char Temp[MAX_PATH] = {0};
str.Format("删除:当前找到的最早的文件夹名:%s/n",strTmp);
TRACE(str);
theApp.OutFile << str << endl;
memcpy(Temp,strTmp,strTmp.GetLength());
if (Temp[0] != '/0')
{
SHFILEOPSTRUCT FileOp;
FileOp.hwnd = NULL;
FileOp.wFunc = FO_DELETE;
FileOp.pFrom = Temp;
FileOp.pTo = NULL;
FileOp.fFlags = FOF_NOCONFIRMATION;
FileOp.lpszProgressTitle = FALSE;
FileOp.hNameMappings = NULL;
FileOp.lpszProgressTitle = NULL;
//删除
SHFileOperation(&FileOp);
}
break;
}
}
}
tempFind.Close();
}