MFC/C++检测磁盘空间,并当磁盘空间小于条件时,提示用户删除文件夹下子文件————超详细版

2 篇文章 0 订阅
1、获取磁盘空间
#include <windows.h> //加上头文件
void GetDiskSpace() {
	DWORD64 qwFreeBytes, qwFreeBytesToCaller, qwTotalBytes;

	BOOL bResult = GetDiskFreeSpaceEx(TEXT("C:"),//获取指定盘符

		(PULARGE_INTEGER)&qwFreeBytesToCaller,

		(PULARGE_INTEGER)&qwTotalBytes,

		(PULARGE_INTEGER)&qwFreeBytes);  //qwFreeBytes为剩余空间,单位字节
	if (bResult) {
		if (qwFreeBytes < 1000000000) {      //小于1G空间
			MessageBox(_T("内存空间即将不足,请及时清理图片"));
		}
		else
		{
			return;
		}
	}
}
2、删除指定文件夹下的子文件
void DeleteDirectory(CString strDir) //strDir 为文件夹路径
{
	if (strDir.IsEmpty())
	{
		RemoveDirectory(strDir);
		return;
	}
	CFileFind   ff;
	BOOL bFound = ff.FindFile(strDir + _T("\\*"), 0);
	while (bFound)
	{
		bFound = ff.FindNextFile();
		if (ff.GetFileName() == _T(".") || ff.GetFileName() == _T(".."))        continue;
		//去掉文件(夹)只读等属性
		SetFileAttributes(ff.GetFilePath(), FILE_ATTRIBUTE_NORMAL);
		if (ff.IsDirectory())
		{
			//递归删除子文件夹
			DeleteDirectory(ff.GetFilePath());
			RemoveDirectory(ff.GetFilePath());
		}
		else
		{
			DeleteFile(ff.GetFilePath());   //删除文件
		}
	}
	ff.Close();
	//然后删除该文件夹
	//RemoveDirectory(strDir);  //需要删除这个文件夹的可以把这个代码注释取消
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值