返回爱好者网站首页
 
商城 博墅 论坛
首 页 | 学 院 | 数 码 | 硬 件 | 装机DIY | 台式机 | 办 公 | 数字家电 | 视频教程 | Flash小游戏 | 桌面壁纸 | 精彩专题 | 活动
  数码数码相机 手机 MP3/MP4 笔记本 GPS 硬件CPU 主板 存储 音频 显示器 显卡 投影机 机箱/电源 外设 术语 学院资讯 系统 软件 安全 网络 办公 设计 程序 问答
装机DIY家用 网吧 办公 娱乐 2000元 4000元 6000元 8000元 DIY技巧 答疑 台式机入门 家用 办公 娱乐 购买技巧 答疑 办公打印机 多功能一体机
学院首页 | 新闻资讯 | 操作系统 | 软件应用 | 创意设计 | 程序开发 | 办公技巧 | 网络应用 | 个人安全 | 素材推荐 | 故障问答
CFan新视界 | 软件专区 | Vista专区 | XP专区 | 站长专区 | 专栏作者 | 精彩专题
· PhotoShop CS · Dreamweaver · Flash · ASP · Excel · Word · CorelDRAW · 3D Max · PhotoShop 7.0 · 常用软件
当前位置: 首页 学院 程序 VB

VB中获取逻辑磁盘的信息

1000元免费加油卡,点击就送 很酷很个性 我的QQ空间留言最最炫  

2008-08-21 作者: 来源:VB大世界
·抠图——孔雀美女
·胆小者勿进
·教你打造蝶蝎美人
·正在消失的美女
·亲手给MM加幅眼镜
·合成绝美的天上人间
·古堡中的梦幻女孩
·合成密林深处的公主
·墙壁上的剥落女孩
·森林里的蝴蝶公主
  
---- 我们在编程的时候有时会需要得到系统中逻辑磁盘的一些信息,如磁盘卷标、磁盘序列号、空间大小、剩余空间等,这些信息直接使用VB提供的函数显然是无法得到的。但是,借助于VB对WINDOWS API函数的支持,使用GetVolumeInformation和 GetDiskFreeSpace这两个API函数,我们就可以很容易的得到磁盘的相关信息。 

---- 先来谈谈这两个函数。GetVolumeInformation函数用于获取与一个磁盘卷有关的信息,包括磁盘卷标、磁盘的序列号、文件的全路径名中“\”与“\”之间部分的长度、文件系统的名称以及文件系统的某些特性。GetDiskFreeSpace函数用于获取与一个磁盘组织有关的信息,以及了解剩余空间的容量,包括磁盘上的总簇数、剩余簇数、一个簇内的扇区数和一个扇区内的字节数。 

---- 接下来看看具体的例子。 

---- 进入VB中,在窗体上加入一个驱动器列表框(DriveListBox)和一个列表框(ListBox),然后加入以下的脚本: 

Option Explicit
Private Declare Function GetVolumeInformation 
Lib "kernel32" Alias 
"GetVolumeInformationA" (ByVal lpRootPathName As 
String, ByVal lpVolumeNameBuffer As 
String, ByVal nVolumeNameSize As Long,
lpVolumeSerialNumber As Long, 
lpMaximumComponentLength As Long,
lpFileSystemFlags As Long, ByVal 
lpFileSystemNameBuffer As String, 
ByVal nFileSystemNameSize As Long) As Long
Private Declare Function GetDiskFreeSpace 
Lib "kernel32" Alias "GetDiskFreeSpaceA" 
(ByVal lpRootPathName As String, lpSectorsPerCluster
As Long, lpBytesPerSector As Long, 
lpNumberOfFreeClusters As Long,
lpTotalNumberOfClusters As Long) As Long
Private Const FS_CASE_IS_PRESERVED = &H2
Private Const FS_CASE_SENSITIVE = &H1
Private Const FS_UNICODE_STORED_ON_
DISK = &H4
Private Const FS_PERSISTENT_ACLS = &H8
Private Const FS_FILE_COMPRESSION = &H10
Private Const FS_VOL_IS_COMPRESSED = 
&H8000

Private Sub Drive1_Change()
Dim Volume As String, SysName As String
Dim SerialNum As Long, SysFlags As Long, 
ComponentLength As Long, Res As Long
Dim SectorsPerCluster As Long, BytesPerSector 
As Long, NumberOfFreeClustors As 
Long, TotalNumberOfClustors As Long
Dim FreeBytes As Long, TotalBytes As Long, 
PercentFree As Long, Dl As Long
Dim DrvName As String
List1.Clear
Volume = String(256, 0)
SysName = String(256, 0)
DrvName = Left(Drive1.Drive, 2) & "\"
Res = GetVolumeInformation(DrvName, 
Volume, 255, SerialNum, _
ComponentLength, SysFlags, SysName, 255)
If Res = 0 Then
List1.AddItem "不能得到磁盘信息"
Else
List1.AddItem "卷标: " & Trim(Volume)
List1.AddItem "序列号: " & SerialNum
List1.AddItem "成分长度: " & ComponentLength
List1.AddItem "文件系统: " & Trim(SysName)
Dl = GetDiskFreeSpace(DrvName, 
SectorsPerCluster, BytesPerSector, 
NumberOfFreeClustors, TotalNumberOfClustors)
List1.AddItem "每簇中扇区数: " 
& Format(SectorsPerCluster, "#,0")
List1.AddItem "每扇区中字节数: "
& Format(BytesPerSector, "#,0")
List1.AddItem "总簇数: " 
& Format(TotalNumberOfClustors, "#,0")
List1.AddItem "剩余簇数: " 
& Format(NumberOfFreeClustors, "#,0")
TotalBytes = TotalNumberOfClustors * 
SectorsPerCluster * BytesPerSector
List1.AddItem "总字节数: 
" & Format(TotalBytes, "#,0")
FreeBytes = NumberOfFreeClustors
* SectorsPerCluster * BytesPerSector
List1.AddItem "剩余字节数: " 
& Format(FreeBytes, "#,0")
If SysFlags And FS_CASE_IS_PRESERVED Then
List1.AddItem "文件名的大小写记录于文件系统"
End If
If SysFlags And FS_CASE_SENSITIVE Then
List1.AddItem "文件名要区分大小写"
End If
If SysFlags And FS_UNICODE_STORED_
ON_DISK Then
List1.AddItem "文件名保存为 Unicode 格式"
End If
If SysFlags And FS_PERSISTENT_ACLS Then
List1.AddItem "文件系统支持文件的访问
控制列表(ACL)安全机制"
End If
If SysFlags And FS_FILE_COMPRESSION Then
List1.AddItem "文件系统支持逐文件地进行文件压缩"
End If
If SysFlags And FS_VOL_IS_COMPRESSED Then
List1.AddItem "整个磁盘卷都是压缩的"
End If
End If
End Sub

Private Sub Form_Load()
Call Drive1_Change
End Sub

---- 运行后,选择驱动器列表框中的不同驱动器,列表框中就会显示出该驱动器的相应信息。以上程序在VB5.0、VB6.0及WINDOWS 98中运行通过。
VB编荧屏焰火屏保程序
· VS.Net水晶报表实现方
· 树视TreeView的使用技
· ——细水长流话 API
· VB使用天宇报表控件
· 用VB程序编写抽奖程序
VB用第三方控件打造QQ
· VB图像在数据库存储与
· ——写给正想学VB和正
· ——细水长流话 API
· ——细水长流话 API
· VB中水晶报表编程方法
热点推荐



· 用完电脑一定要洗把脸
· 电脑一族必喝的健康饮料
· 炎热夏天 多吃三类蔬菜
· 卖什么都有,卖脸你见过吗
· 无聊老师的17则爆笑语录
· photoshop快捷键大全
· 《功夫熊猫》经典台词!
· 近距离接触中国击剑队
· 分享网络推广的八种方法
站外资源推荐
无标题文档
绝色空姐汇聚的航线
评论
评论排行
用VB制作一个简单的MP3播放器
自制王码五笔字型输入法安装包
微软副总给中国大学生的信
用VB制作验证码生成器
用VB6写简单程序 让电骡自动关机
程序设计中的感悟
Flash编程不难 轻松让节日烟花放起来
关于Visual Basic 9.0的动态标识符
用VB跟我学做记事本(很简单哟)
网络编程中的一些技巧

笔名

匿名发表

验证码:

查看评论
* 评论只代表网友个人观点,与电脑爱好者网站无关,不代表电脑爱好者网站也同意此观点。
 
热点专题
 
· 用DW打造自己的Blog
· 09年广州车展
· 狂人马云与阿里巴巴
· 开个网店做老板
· Web服务器架设攻略
· 三大浏览器应用技巧
· 建站四步曲
· 月入上万的程序员们
· 如何推广新网站及赚钱
· 手机铃声制作攻略
· 系统安装步步通
· 新手学电脑
热点文章
 
傲游使用技巧 地址栏图标的妙用 一个校园网站的成长历程
让你操作Windows于弹指之间 利用Google地图驾车环游世界
看看在线操作系统什么样

歌曲下载快到飚 搜狗音乐盒大体验

QQ专区
 
站长专区
 
·做ADSENSE的英文站月薪几千
·再谈:什么样的网站能赚钱
·江礼坤:手把手教你策划网站
·教育类网站如何赚钱
·十招让内容页流量翻番
· 个人网站建设到底怎样赚钱
·月赚三四千元 网上开店秘笈
·站长如何有效推广网站
·一个校园网站的成长历程
·如何防止自己的站被人采集
论坛博墅
 
·玩转Vista加速与优化
·十招学会软件的破解
·Ubuntu 安装的一小点心得
·手动去除迅雷广告
·揭秘黑客真身
·QQ秘籍让你成为QQ高手
·硬件检测软件逐个看
·劲舞团不能倒闭的八大理由
·2月5日 单机游戏下载合集
·国内网页设计网站大全
无标题文档
快速链接:站长专区 Vista专区 XP专区 风行软件专区 电脑必备软件 免费在线小游戏 免费在线视频教程 学院专题 数码专题 硬件专题

爱好者网站版权所有 未经授权禁止复制或建立镜像
Copyright(C) cfan.com.cn,All rights reserved
京ICP证010182号