動態保持視頻文件存取容量VC

一個磁盤用於動態存儲文件,保持最新文件存儲,刪除較早文件釋放磁盤空間
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秒》
相關文章
相關標籤/搜索