您的位置:首页 > 编程语言 > C#

c# API使用GetVolumeInformation函数获取硬盘信息

2013-04-09 10:06 627 查看
API 说明(Code:C#)-------------

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]

        public static extern bool GetVolumeInformation(

        string lpRootPathName,                       //   欲获取信息的那个卷的根路径 

        string lpVolumeNameBuffer,                 //   用于装载卷名(卷标)的一个字串 

        int nVolumeNameSize,                         //   lpVolumeNameBuffer字串的长度   

        ref int lpVolumeSerialNumber,           //   用于装载磁盘卷序列号的变量   

        int lpMaximumComponentLength,   // 指定一个变量,用于装载文件名每一部分的长度。例如,在“c:\component1\component2.ext”的情况下,它就代表component1或component2名称的长度 .

        int lpFileSystemFlags,    //   用于装载一个或多个二进制位标志的变量。对这些标志位的解释如下:

  FS_CASE_IS_PRESERVED 文件名的大小写记录于文件系统

  FS_CASE_SENSITIVE 文件名要区分大小写

  FS_UNICODE_STORED_ON_DISK 文件名保存为Unicode格式

  FS_PERSISTANT_ACLS 文件系统支持文件的访问控制列表(ACL)安全机制

  FS_FILE_COMPRESSION 文件系统支持逐文件的进行文件压缩

  FS_VOL_IS_COMPRESSED 整个磁盘卷都是压缩的 

     string lpFileSystemNameBuffer, //指定一个缓冲区,用于装载文件系统的名称(如FAT,NTFS以及其他)        int nFileSystemNameSize                   //   lpFileSystemNameBuffer字串的长度

        );  

        /// <summary>

        /// 获取硬盘ID

        /// </summary>

        /// <returns></returns>

public string GetdiskID()

        {

const int MAX_FILENAME_LEN = 256;

            int retVal = 0;

            int a = 0;

            int b = 0;

            string str1 = null;

            string str2 = null;

            GetVolumeInformation(

                @"C:\",

                str1,

                MAX_FILENAME_LEN,

                ref retVal,

                a,

                b,

                str2,

                MAX_FILENAME_LEN);

return retVal.ToString();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# GetVolumeInformation
相关文章推荐