GetDriveType 函数
头文件在“winbase.h”GetDriveType 是Kernel32.dll中的一个函数,
UINT GetDriveType ( LPCTSTR lpRootPathName // root directory );
函数功能 判断磁盘类型
参数说明 lpRootPathName包含了根目录路径的字符串指针
返回值 (返回到EAX中为0 1 2 3 4 5 6)
0 DRIVE_UNKNOWN未知的磁盘类型
1 DRIVE_NO_ROOT_DIR说明lpRootPathName是无效的
2 DRIVE_REMOVABLE可移动磁盘
3 DRIVE_FIXED固定磁盘
4 DRIVE_REMOTE网络磁盘
5 DRIVE_CDROM光驱
6 DRIVE_RAMDISK为RAM
应用小例
#include <windows.h>
int main()
{
if(GetDriveType("C:\\") = = DRIVE_FIXED) (DRIVE_FIXED或者是3 )
{
MessageBox(NULL,"固定磁盘","",MB_OK);
}
system("pause");
return 0;
}
GetVolumeInformation函数
GetVolumeInformation函数返回有关文件系统和其根目录调用中指定的卷的信息。在存在几个常见的文件系统(如NTFS、FAT和CDFS)新的文件系统可能会影响存储要求为应用程序,等,以便调用GetVolumeInformation可能会提供有价值的信息,您可以在您的应用程序中使用的开发中。若要计算磁盘空间和文件大小),也可以使用的某些信息此调用返回。
函数功能 获取与一个磁盘卷有关的信息
返回值 Long,非零表示成功,零表示失败。会设置GetLastError
GetVolumeInformation(
PChar lpRootPathName:; {磁盘驱动器代码字符串}
PChar lpVolumeNameBuffer:; {磁盘驱动器卷标名称}
DWORD nVolumeNameSize:; {磁盘驱动器卷标名称长度}
PDWORD lpVolumeSerialNumber:; {磁盘驱动器卷标序列号}
DWORD var lpMaximumComponentLength:; {系统允许的最大文件名长度}
DWORD var lpFileSystemFlags:; {文件系统标识}
PChar lpFileSystemNameBuffer:; {文件操作系统名称 如FAT,NTFS}
DWORD nFileSystemNameSize: {文件操作系统名称长度}
)
lpFileSystemFlags Long,用于装载一个或多个二进制位标志的变量。
对这些标志位的解释如下:
FS_CASE_IS_PRESERVED文件名的大小写记录于文件系统
FS_CASE_SENSITIVE文件名要区分大小写
FS_UNICODE_STORED_ON_DISK文件名保存为Unicode格式 FS_PERSISTANT_ACLS文件系统支持文件的访问控制列表(ACL)安全机制 FS_FILE_COMPRESSION文件系统支持逐文件的进行文件压缩 FS_VOL_IS_COMPRESSED整个磁盘卷都是压缩的
应用小例:
#include <stdio.h>
#include <windows.h>
int main()
{
char Root[] = "C:\\";
char Volumelabel[20];
DWORD SerialNumber;
DWORD MaxCLength;
DWORD FileSysFlag;
char FileSysName[10];
GetVolumeInformation( "C:\\",Volumelabel,255,&SerialNumber,&MaxCLength,&FileSysFlag,FileSysName,255);
printf("卷标名称(Volumelabel) = %s\n",Volumelabel);
printf("卷标序列号(SerialNumber) = 0x%x\n",*(&SerialNumber));
printf("系统允许最大文件名长度(MaxCLength) = 0x%x\n",*(&MaxCLength));
printf("文件系统标识(FileSysFlag) = 0x%x\n",*(&FileSysFlag));
printf("文件系统名称(FileSysName) = %s\n",FileSysName);
system("pause");
return 0;
}