我是靠谱客的博主 阔达歌曲,最近开发中收集的这篇文章主要介绍c++ (Q1):读取设备(PC)磁盘,查看状态c++ (Q1):读取设备(PC)磁盘,查看状态,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

c++ (Q1):读取设备(PC)磁盘,查看状态

1. 背景:

项目有大量的数据需要存储,会挂载多块磁盘,在一块磁盘存储空间不足时自动变换到下一块磁盘存储(不要存在C盘)


2.代码:

#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
/* 磁盘读取测试 */
//ULARGE_INTEGER nFreeBytesAvailable;
//ULARGE_INTEGER nTotalNumberOfBytes;
//ULARGE_INTEGER nTotalNumberOfFreeBytes;
//char test[3];
//char test_name[512];
/*TCHAR 宽窄字符切换*/
//TCHAR buf[MAX_PATH] = {};
//260
//GetLogicalDriveStrings(MAX_PATH, buf);
//TCHAR*
pDrives = buf;
//while (*pDrives != 0) {
//	pDrives += _tcslen (pDrives) + 1;
//	for (int i=0; i<3; i++)
//	{
//
test[i] = pDrives[i];
//	}
//	test[3] = '';
//	sprintf(test_name,"%s",test);
//	cout<< test_name <<endl;
//	if (*pDrives != 0 && GetDiskFreeSpaceEx(pDrives, &nFreeBytesAvailable, &nTotalNumberOfBytes, &nTotalNumberOfFreeBytes))
//	{
//
int a = (nTotalNumberOfBytes.QuadPart) / 1024 / 1024 / 1024;
//
int b = (nFreeBytesAvailable.QuadPart) / 1024 / 1024 / 1024;
//
cout<<" totalspace:"<< a <<" GB";
//磁盘总容量
//
cout<<" freespace:"<< b <<" GB"<<endl; //磁盘剩余空间
//	}
//}
//system("pause");
//return 0;
/* 磁盘切换逻辑实现 */
ULARGE_INTEGER nFreeBytesAvailable;
ULARGE_INTEGER nTotalNumberOfBytes;
ULARGE_INTEGER nTotalNumberOfFreeBytes;
char test[3];
char test_name[512];
TCHAR buf[MAX_PATH] = {};
//260
GetLogicalDriveStrings(MAX_PATH, buf);
TCHAR*
pDrives = buf;
while (*pDrives != 0) {
//跳过C盘的检查
pDrives += _tcslen (pDrives) + 1;
//
if (*pDrives != 0 && GetDiskFreeSpaceEx(pDrives, &nFreeBytesAvailable, &nTotalNumberOfBytes, &nTotalNumberOfFreeBytes)){
//读取当前磁盘的剩余空间
int freespace = (nFreeBytesAvailable.QuadPart) / 1024 / 1024 / 1024;
if (freespace < 5){
continue;
}
else{
for (int i=0; i<3; i++){
test[i] = pDrives[i];
}
test[3] = '';
sprintf(test_name,"%s",test);
cout<< test_name <<endl;
break;
}
}
else{
cout<< "磁盘已满,请更换磁盘" <<endl;
}
}
//保持窗口不关闭
system("pause");
return 0;
}

3. 说明

注释掉的部分是磁盘读取的测试,后面没有注释掉的部分是本人大概功能的实现,其中test、test_name是个人需要,请需要的朋友自觉进食!

最后

以上就是阔达歌曲为你收集整理的c++ (Q1):读取设备(PC)磁盘,查看状态c++ (Q1):读取设备(PC)磁盘,查看状态的全部内容,希望文章能够帮你解决c++ (Q1):读取设备(PC)磁盘,查看状态c++ (Q1):读取设备(PC)磁盘,查看状态所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部