WEB开发网
开发学院软件开发VC 如何用 VolInfo 获取逻辑驱动器 阅读

如何用 VolInfo 获取逻辑驱动器

 2006-07-20 11:38:41 来源:WEB开发网   
核心提示: 10110 10001 11000 00000 00000 00000 00这条信息表示在我的电脑里有驱动器:A、C、D、F、J、K、和L,哟!如果你的大脑皮层以二进制形式编程编多了,如何用 VolInfo 获取逻辑驱动器(2),迟早会有GetLogicalDriveStrings这样的函
10110 10001 11000 00000 00000 00000 00   

这条信息表示在我的电脑里有驱动器:A、C、D、F、J、K、和L。哟!如果你的大脑皮层以二进制形式编程编多了,迟早会有GetLogicalDriveStrings这样的函数诞生,它返回一个代表所有驱动器字母的重要字符串。每一个驱动器字母拥有D:\(尾随一个‘\’)的形式,这里 D 表示驱动器盘符,每个字符串有一空(null)终结符,结尾处有两个null。既然知道了用 TCHARs 处理很拘束,那么就写一个顺手的CVolumeMaster封装器,用 CStringArray 来保存得到的驱动器字母。毕竟这是个C++专栏。你只要写如下的代码:

CVolumeMaster vm;
  CStringArray arDrives;
  int n = vm.GetLogicalDriveStrings(arDrives);   

现在arDrives里是驱动器字母串,n是逻辑驱动器数目。明白了吧?

有哪些驱动器你是知道了,但如何知道各个驱动器是什么类型的呢?GetDriveType就是为此而设。GetDriveType返回一个代码,如 DRIVE_FIXED 代表硬盘,或者 DRIVE_CDROM 代表CD-ROM驱动器。CVolumeMaster有一静态函数,用于将代码格式化为人可识别的字符串;VolInfo用它作为输出。详细情况请参见源代码。

最后,如果你想进一步了解某个逻辑驱动器,比如它的卷标,它使用的文件系统或者驱动器是否支持命名流(named streams)和加密,调用 GetVolumeInformation 函数即可。这种瑞士军刀式的函数可以获得卷标、文件系统名称(如, NTFS 或是FAT)、卷序列号、文件系统标识、最大组件长度。

你会问“最大组件长度是什么鬼东西?” 那是指反斜线符之间路径名称部分长度的文件系统表示。换句话说,如果路径名称是c:\mumble\bletch\oops,那么“mumble”、“bletch”和“oops”就是组件,每个组件的长度是有一个限制的。使用VolInfo,你可以发现NTFS支持组件的最大长度为255,而CD-ROM通常只为127。这就解释了为什么当你保存你全部的MP3到CD,你经常会得到一条信息,告诉你一些文件名或其别的什么东西太长,询问是否截短它。

上一页  1 2 3 4  下一页

Tags:如何 VolInfo 获取

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接