使用WINAPI获得磁盘空间信息

范文庆们写的关于WINAPI的书,真心不错。

今天在南汇新场桃花节公路边等给同事们送门票时,我都看了一个多小时呢。。。

粗看一次了。再在细细的熟悉书中每个API吧。

其实,我计划的是,等熟悉WINDOWS的API之后,再去熟悉LINUX的系统API。

然后,基于系统基础的API之上,了解一些MFC,C#,GTK。.NET等快速开发对基础API的封装。

最后,当然JAVA之中的网络API我也是比较感兴趣的。不然,HADOOP如何进一步学习?

想像如此之后,结合我十余年的路由器,交换机配置经验及对WWW.FTP.MAIL服务器的架构和维护。。

XXX,我无敌了么?这难道就是一个系统构架大师之路???

如果我再会写电影剧本,对哲学和美学,社会学,商业管理,沟通技巧,消费心理,历史,文学,书法,英文的造诣

OMG。。。。这,,还是个凡人么??????飘了。飘了。又飘 了。。。

 1 #include <Windows.h>
 2 #include <stdio.h>
 3
 4 BOOL GetDiskSpaceInfo(LPCSTR pszDrive)
 5 {
 6     DWORD64 qwFreeBytesToCaller, qwTotalBytes, qwFreeBytes;
 7     DWORD dwSectPerClust, dwBytesPerSect, dwFreeClusters, dwTotalClusters;
 8     BOOL bResult;
 9
10     bResult = GetDiskFreeSpaceEx (pszDrive,
11         (PULARGE_INTEGER)&qwFreeBytesToCaller,
12         (PULARGE_INTEGER)&qwTotalBytes,
13         (PULARGE_INTEGER)&qwFreeBytes);
14     if(bResult)
15     {
16         printf("Use GetDiskFreeSpaceEX get disk space information\n");
17         printf("availiable Free space(byte):\t%I64d\n",qwFreeBytesToCaller);
18         printf("FreeBytes(byte):\t\t%I64d\n",qwFreeBytes);
19         printf("Total space(byte):\t\t%I64d\n",qwTotalBytes);
20     }
21     bResult = GetDiskFreeSpace (pszDrive,
22         &dwSectPerClust,
23         &dwBytesPerSect,
24         &dwFreeClusters,
25         &dwTotalClusters);
26     if(bResult)
27     {
28         printf("\nUser GetDiskFreeSpace get disk space information\n");
29         printf("Free cluseters :\t\t\t%d\n",dwFreeClusters);
30         printf("Total cluseters :\t\t\t%d\n",dwTotalClusters);
31         printf("Sector per Cluster :\t\t\t%d\n",dwSectPerClust);
32         printf("Bytes per Sector:\t\t\t%d\n",dwBytesPerSect);
33         printf("FreeBytes(byte):\t\t%I64d\n",
34             (DWORD64)dwFreeClusters*
35             (DWORD64)dwSectPerClust*(DWORD64)dwBytesPerSect);
36         printf("Total space(byte):\t\t%I64d\n",
37             (DWORD64)dwTotalClusters*
38             (DWORD64)dwSectPerClust*(DWORD64)dwBytesPerSect);
39     }
40     return bResult;
41 }
42
43 int main(int argc, PCHAR argv[])
44 {
45     GetDiskSpaceInfo(argv[1]);
46 }

开发工具学习版,家里电脑分区情况,程序运行结果。。。真真是大体不差哟。。。:)

 

 

 

时间: 2024-10-30 22:31:19

使用WINAPI获得磁盘空间信息的相关文章

C#中利用API获取磁盘可用空间的问题

问题描述 usingSystem;usingSystem.Runtime.InteropServices;classMainClass{[DllImport("User32.dll")]publicstaticexternintMessageBox(inth,stringm,stringc,inttype);[DllImport("Kernel32.dll")]publicstaticexternSystem.Int32GetDiskFreeSpace(refstr

Java中如何得到某个远程机器的磁盘信息

问题描述 Java中如何得到某个远程机器的磁盘信息,包括有几个盘符,盘符已用空间及总空间,jdk1.6中可以的到本地磁盘空间信息,是否也能的到远程的呢?我正在做一个监控系统,监控机房的机器,这些机器用于存储试验数据,由于数据量很大,所以需要实时监控.当然,有权访问这些机器了.不知道是否还要考虑权限的问题,这些机器都是有防火墙的,我这种想法是不是有问题,我就想读一下系统的磁盘信息,然后显示一下,磁盘空间不足就报警.比如,上传一段视频,要时时的显示磁盘空间占用率,磁盘空间不足就报警 解决方案 解决方

Linux 监视磁盘空间和使用情况

在本文中,您将了解到监视磁盘空间.发现究竟是哪些文件.用户或应用程序占用了大部分的空间.以及如何使用配额和其他解决方案查找需要的信息的方法. 对于许多管理员来说,使用 df 工具可能有点像断续的神经运动,因为它通过一个命令提供了所有文件系统中已使用的和可用的存储空间的快照视图.根据您的 UNIX 环境的不同,df 的缺省输出可能包含各种不同的信息. 大部分现代的 df 变种都可以显示磁盘空间.使用情况和可用性,通常还包括装入点(有时包括设备).例如,基于 BSD 的 Mac OS X 显示如清单

MySQL重定位数据目录的内容

mysql|数据|数据目录     10 . 2节讨论了在其缺省配置中的数据目录的结构.所有数据库和状态文件都包含在其中.但是,在确定数据目录内容的布局中管理员有某些职责.本节讨论为什么要移动数据目录的各个部分(甚至是字典本身).可以移动什么,以及怎样进行这些移动.    MySQL允许您重定位其中的数据目录或元素.这样做有几个原因:    可以用比缺省定位的文件系统更大的容量在文件系统中放置数据目录.    如果数据目录在繁忙的磁盘上,可以将其放置到较少使用的驱动器上,以平衡物理设备之间的磁盘

.net手机软件开发(六)OBEX应用——文件传输部分

(六) OBEX应用--文件传输部分 在手机数据传输方面基本OBEX应用分为 l 文件传输 l IrMC同步 文件传输又可以细分为以下基本操作 l 初始化连接 l 断开连接 l 设置路径 l 取得目录信息 l 创建目录 l 上传下载文件 l 删除文件或空目录 在笔者的软件当中设计了OBEX这个类,里面包含了以上所有的基本操作.另外针对M55的服务端的特殊性又设计了更名.取得磁盘空间信息.移动.拷贝文件的功能.具体请参考源代码. 下面具体讲述各个操作的细节. l 初始化连接 初始化连接包括了使手机

SQL Server 2008中数据收集器和管理数据仓库

08年8月份发布的SQL Server 2008充满了许多新特性.其中一个新特性就是数据收集器.与这一新特性相关联的是管理数据仓库(MDW).数据收集器功能非常强大,数据库管理员借助这一工具,能够收集不同来源的统计数据,而管理数据仓库就是用来存放存储这些数据. 一.什么是数据收集器? 数据收集器是SQL Server 服务器上的一个核心组件,它收集来自多种来源的数据,并将收集的数据存储在称为管理数据仓库的关系数据库中.数据采集器使用SSIS和SQL 代理的作业来实现这一功能. 数据收集器按照不同

linux查看目录大小及硬盘大小

  linux查看目录大小及硬盘大小的命令: # du -ks ---in all # du -k ---every last du和df命令都被用于获得文件系统大小的信息:df用于报告文件系统的总块数及剩余块数,du -s /用于报告文件系统使用的块数.但是,我们可以发现从df命令算出的文件系统使用块数的值与通过du命令得出的值是不一致的.如下例: # du -s /tmp 返回如下值: ---12920 /tmp 而 df /tmp返回如下值: Filesystem --512-blocks

人人都是 DBA(V)SQL Server 数据库文件

原文:人人都是 DBA(V)SQL Server 数据库文件 SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname(owner_sid) AS [owner] ,create_date ,user_access_desc ,state_desc FROM sys.databases WHERE database_id <= 4; master mas

Linux 常见的系统管理 + 网络管理 + 常用工具指令(简单的程序安装,如MySQL)

常见系统管理(凡是涉及到修改,就一定要用root权限) 轻易不要使用su去切换到root的身份 普通用户使用sudo来执行root权限的命令 如,将hadoop用户添加到sudoers文件中去 vi /etc/sudoers root ALL=(ALL) ALL hadoop ALL=(ALL) ALL 磁盘空间信息查看 df -h 查看磁盘空间状态信息 du -sh * 查看当前目录下所有子目录和文件的汇总大小 进程信息查看 free 查看内存使用状况 后面加个m 就是带个单位撒 top 查看