posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Windows 如何获得光盘的名称

Posted on 2011-08-09 07:25 RTY 阅读(350) 评论(0)  编辑 收藏 引用 所属分类: C/C++Windows
摘抄了部分网站的文章,主要还是用到Windows的API  GetVolumeInformation 这个函数主要用途是获得文件系统信息

1. 摘抄原文地址:
http://tech.ddvip.com/2008-11/122655520092169.html
http://hackdiy.com/I-214009.html

2
. 以下是源码说明:
声明:

GetVolumeInformation(
 lpRootPathName: PChar;        {磁盘驱动器代码字符串}
 lpVolumeNameBuffer: PChar;      {磁盘驱动器卷标名称}
 nVolumeNameSize: DWORD;       {磁盘驱动器卷标名称长度}
 lpVolumeSerialNumber: PDWORD;    {磁盘驱动器卷标序列号}
 var lpMaximumComponentLength: DWORD; {系统允许的最大文件名长度}
 var lpFileSystemFlags: DWORD;    {文件系统标识}
 lpFileSystemNameBuffer: PChar;    {文件操作系统名称}
 nFileSystemNameSize: DWORD      {文件操作系统名称长度}
): BOOL;
//举例:procedure TForm1.FormCreate(Sender: TObject);
var
 RootPath: array[0..20] of Char;
 VolName: array[0..255] of Char;
 SerialNumber: DWORD;
 MaxCLength: DWORD;
 FileSysFlag: DWORD;
 FileSysName: array[0..255] of Char;
begin
 RootPath := 'C:';
 GetVolumeInformation(
  RootPath,
  VolName,
  255,
  @SerialNumber,
  MaxCLength,
  FileSysFlag,
  FileSysName,
  255
 );
 Memo1.Clear;
 with Memo1.Lines do
 begin
  Add(Format('磁盘驱动器代码字符串:'+ #9#9 +'%s',[RootPath]));
  Add(Format('磁盘驱动器卷标名称:'+ #9#9 +'%s',[VolName]));
  Add(Format('磁盘驱动器卷标序列号:'+ #9#9 +'%s',[IntToHex(SerialNumber,8)]));
  Add(Format('系统允许的最大文件名长度:'+ #9 +'%d',[MaxCLength]));
  Add(Format('文件系统标识:'+ #9#9#9 +'%d',[FileSysFlag]));
  Add(Format('文件系统名称:'+ #9#9#9 +'%s',[FileSysName]));
 end;
end;
//效果图:

WinAPI: GetVolumeInformation - 读取文件系统信息


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理