一個磁盤用於動態存儲文件,保持最新文件存儲,刪除較早文件釋放磁盤空間
BOOL fResult;
unsigned _int64 i64FreeBytesToCaller;
unsigned _int64 i64TotalBytes;
unsigned _int64 i64FreeBytes;
unsigned int freespace;
vector<char *> myFileVector;
fResult = GetDiskFreeSpaceEx (
"D://",
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
if(fResult)
{
freespace = i64FreeBytesToCaller/1024/1024/1024;
if (freespace < 30)
{
vector<char *> myFileVector;
TCHAR path[200];
SetCurrentDirectory("D:\\");
GetCurrentDirectory(200,path);
CFileFind finder;
BOOL bWorking = finder.FindFile("*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
CString filename= finder.GetFileName();
if(filename == "." || filename == ".."||\
filename == "RECYCLER" || filename == "System Volume Information")
{
//………………
}
else if(finder.IsDirectory())
{
char chtemp[16];
sprintf(chtemp,"%s",filename);
myFileVector.push_back(chtemp);
}
}//End while bWorking
if(myFileVector.size() > 0)
{
sort(myFileVector);
}
//int a= myFileVector.size();
CString strdeletefile;
while(freespace < 30)
{
if(myFileVector.size() > 0)
{
strdeletefile.Format("%s",myFileVector.at(0));
myFileVector.erase(&myFileVector[0]);
DeleteDirectory(strdeletefile);// 調用刪除文件(strdeletfile是文件夾名)
fResult = GetDiskFreeSpaceEx (
"D://",
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
}
else{
break;
}
if(fResult)
{
freespace = i64FreeBytesToCaller/1024/1024/1024;
}
else
{
break;
}
}//End while freespace
}//End if freespace
}//End if fResult
//獲得磁盤剩餘空間大小,獲得文件夾名,文件夾名爲日期格式,如20120701125900《2012年7月1日12時59分00秒》