6.3w+
社区成员
磁盘空间
#include <windows.h>
#include <stdio.h>
typedef BOOL (WINAPI *PGETDISKFREESPACEEX)(LPCSTR,
PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER);
BOOL MyGetDiskFreeSpaceEx(LPCSTR pszDrive)
{
PGETDISKFREESPACEEX pGetDiskFreeSpaceEx;
__int64 i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes;
DWORD dwSectPerClust,
dwBytesPerSect,
dwFreeClusters,
dwTotalClusters;
BOOL fResult;
pGetDiskFreeSpaceEx = (PGETDISKFREESPACEEX) GetProcAddress(
GetModuleHandle("kernel32.dll"),
"GetDiskFreeSpaceExA");
if (pGetDiskFreeSpaceEx)
{
fResult = pGetDiskFreeSpaceEx (pszDrive,
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
// Process GetDiskFreeSpaceEx results.
if(fResult)
{
printf("Total free bytes = %I64d\n", i64FreeBytes);
}
return fResult;
}
else
{
fResult = GetDiskFreeSpaceA (pszDrive,
&dwSectPerClust,
&dwBytesPerSect,
&dwFreeClusters,
&dwTotalClusters);
// Process GetDiskFreeSpace results.
if(fResult)
{
printf("Total free bytes = I64d\n",
dwFreeClusters*dwSectPerClust*dwBytesPerSect);
}
return fResult;
}
}
int main(int argc, char *argv[])
{
MyGetDiskFreeSpaceEx ("C");
}
没什么问题啊
#include "windows.h"
#include "iostream"
using namespace std;
int GetLogiDrv()
{
bool drives[32] = { false };
int i = 0;
int DrivesCount=0; //磁碟计数器
DWORD DrivesInfo=GetLogicalDrives();
while (DrivesInfo)
{
if (DrivesInfo&1)
{
DrivesCount++;
drives[i] = true;
}
i++;
DrivesInfo=DrivesInfo>>1; //向右偏移1位,读取下一位.
}
cout<<"当前逻辑驱动器数量是:" <<DrivesCount<<" (";
for (i = 0; i < 32; ++i)
if (drives[i])
cout<<(char)('A' + i)<<": ";
cout<<" )"<<endl;
return (0);
}
int GetLogiDrvTp()
{
DWORD LogiDrvStrInfo=GetLogicalDriveStrings(0,NULL);
char* TpInfo=new char[LogiDrvStrInfo]; //在堆区建立字符传数组;
GetLogicalDriveStrings(LogiDrvStrInfo,TpInfo); //拷贝到TpInfo中
cout <<"当前驱动器字符串信息是:" <<TpInfo <<endl;
int DrvType=GetDriveType(TpInfo);
cout <<"当前驱动器标识代号是:" <<DrvType <<endl;
//3是硬盘,5是光驱;
return (0);
}
int GetDrvSpa()
{
float DrvSpa=GetDiskFreeSpaceEx();
return (0);
}
int main ()
{
//CopyRight();
GetLogiDrv();
GetLogiDrvTp();
return 0;
}
GetDiskFreeSpace()
或者
GetDiskFreeSpaceEx()
具体用法查一查参考手册或者帮助文件