磁盘空间读取问题 使用vs2008编写

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:19:27
/***********************************
* 获取磁盘空间.c获取磁盘空间信息
********************************/
/*头文件*/
#include<windows.h>
#include<stdio.h>
/*********************************
*BOOL GetDiskSpaceInfo(LPCSTR pszDrive)
* 功能:根据输入的驱动器,获取磁盘总容量
* 空闲空间、镞数量等磁盘信息
* 参数:驱动器根路径,比如:“D:\”
**************************************/
BOOL GetDiskSpaceInfo(LPSTR pszDrive)
{
DWORD64 qwFreeBytesToCaller,qwTotalBytes,qwFreeBytes;
DWORD dwSectPerClust,dwBytesPerSect,dwFreeClusters,dwTotalClusters;
BOOL bResult;
//使用GetDiskFreeSpaceEx获取磁盘信息并打印结果
bResult=GetDiskFreeSpaceEx(pszDrive,
(PULARGE_INTEGER)&qwFreeBytesToCaller,
(PULARGE_INTEGER)&qwTotalBytes,
(PULARGE_INTEGER)&qwFreeBytes);
if(bResult)
{
printf("使用GetDiskFreeSpaceEx获取磁盘空间信息\n");
printf("可获得的空闲空间(字节):\t%I64d\n",qwFreeBytesToCaller);
printf("空闲空间(字节):\t

我的是VS2008,系统是Windows XP
可见程序肯定是没问题的,可能是Windows 7操作系统的文件系统对于某些指令不兼容

程序没有问题,你的输入有问题吧:
使用如下命令:"XXX.exe C:" //这个得到C盘的信息
使用如下命令:"XXX.exe D:" //这个得到D盘的信息
使用如下命令:"XXX.exe E:" //这个得到E盘的信息
使用如下命令:"XXX.exe F:" //这个得到F盘的信息

下面是我的运行结果:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

F:\Programe>cd Debug..

F:\Programe\Debug>111.exe D:
使用GetDiskFreeSpaceEx获取磁盘空间信息
可获得的空闲空间(字节): 5609750528
空闲空间(字节): 5609750528
磁盘总容量(字节): 14181629952

使用GetDiskFreeSpace获取磁盘空间信息
空闲的镞数量: 342392
总镞数量: 865578
每镞的扇区数量: 32
每扇区的容量(字节): 512
空闲空间(字节): 5609750528
磁盘总容量(字节): 14181629952
F:\Programe\Debug>111.exe E:
使用GetDiskFreeSpaceEx获取磁盘空间信息
可获得的空闲空间(字节): 4364992