// windows_22_windows_file.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>void RenameDisk( ){SetVolumeLabel( "C:\\", "SYSTEM" );}void ShowSpace( LPSTR pszDrive ){DWORD nSecPerCluster = 0;DWORD nBytesPerSector = 0;DWORD nFreeClusters = 0;DWORD nTotalClusters = 0;GetDiskFreeSpace( pszDrive, &nSecPerCluster,&nBytesPerSector, &nFreeClusters, &nTotalClusters );printf( "\tnSecPerCluster:%d,nBytesPerSector:%d,nFreeClusters:%d, nTotalClusters%d\n",nSecPerCluster, nBytesPerSector, nFreeClusters, nTotalClusters );//获取大小UINT64 nFreeAvailable = 0;/*PULARGE_INTEGER 可以用 UINT64,PULARGE_INTEGER是丙从此DWORD合成的一个结构体UINT64 用 %I64d 输出*/UINT64 nTotalBytes = 0;UINT64 nFreeBytes = 0;GetDiskFreeSpaceEx( pszDrive, (PULARGE_INTEGER)&nFreeAvailable,(PULARGE_INTEGER)&nTotalBytes, (PULARGE_INTEGER)&nFreeBytes );printf( "FreeAvailable:%I64dGB Total:%I64dGB Free:%I64dGB\n",nFreeAvailable / 1024 / 1024 / 1024, nTotalBytes / 1024 / 1024 / 1024, nFreeBytes / 1024 / 1024 / 1024 );}//获取磁盘信息void ShowVolumneInfo( LPSTR pszDrive ){CHAR szVolumneName[256] = { 0 };DWORD nVolumneSerial = 0;DWORD nMaxLength = 0;DWORD nFileSystem = 0;CHAR szFileSystem[256] = { 0 };//获取卷信息GetVolumeInformation( pszDrive, szVolumneName, 256,&nVolumneSerial, &nMaxLength, &nFileSystem,szFileSystem, 256 );printf( "\tName=%s Serial=%08X Length=%d FileSystem=%08X FileSystemInfo=%s\n", szVolumneName,nVolumneSerial, nMaxLength, nFileSystem,szFileSystem );}//获取盘的类型void ShowType( LPSTR pszDrive ){UINT nType = GetDriveType( pszDrive );switch (nType){case DRIVE_FIXED:printf( "%s:硬盘\n" ,pszDrive );break;case DRIVE_CDROM:printf( "%s:光驱\n" ,pszDrive );break;case DRIVE_REMOVABLE:printf( "%s:移动硬盘\n" ,pszDrive );break;default:printf( "%s暂未识别,未识别号:%d\n", pszDrive, nType );break;}}void ShowVolumn( ){CHAR szText[256] = { 0 };DWORD nDrives = GetLogicalDrives( );printf( "nDrives:%08X\n", nDrives );GetLogicalDriveStrings( 256, szText );CHAR *pszTmp = szText; //定义一个临时接管指针while (0!=pszTmp[0]){printf( "Drives:%s\n", pszTmp );ShowType( pszTmp );ShowVolumneInfo( pszTmp );ShowSpace( pszTmp );pszTmp = strlen( pszTmp ) + 1 + pszTmp;}}int _tmain(int argc, _TCHAR* argv[]){ShowVolumn( );return 0;}
22 windows_22_windows_file 文件系统-卷
原文:http://www.cnblogs.com/nfking/p/5573314.html