-
vb教程之Visual Basic文件系统操作一览
VB是现在比较流行的一种语言,相关的书籍也非常多,因此在这里也就没有必要介绍基础的内容了(如果非要,那你就去买本VB入门的书吧)。在编程的过程中我们经常会用到对文件系统的操作,下面是我在实际应用中(或在网上收集)的相关技巧(大部分是 API 技巧),经过仔细的整理后,希望对大家学习提高VB编程有帮助。
读取 Windows 所在目录
API函数:GetWindowsDirectory Private Declare Function GetWindowsDirectory Lib″kernel32″ Alias ″GetWindowsDirectoryA″(ByVal lpBuffer As String, ByVal nSize As Long) As Long
Const MAX-PATH = 260
′定义足够长的字符串
Sub GetWinDir()′定义函数
Dim S As String, Length As Long
S = String(MAX-PATH, 0)′赋值
Length=GetWindowsDirectory(S, MAX-PATH)
′S为取得目录,MAX-PATH 为长度
S = Left(S, InStr(S, Chr(0)) - 1)
′去掉多余的空格
MsgBox ″Windows 路径=″ & S,″Win 目录″
End Sub
补充:S 和 MAX-PATH 的值是可以随便赋的,
如:Dim S as String *20
Length = GetWindowsDirectory(S,20)
不过,这两个的值,一定要够大(一定要大于系统的 Windows 的目录的字符数),不然就不能正常运行。
读取Windows\System 的所在目录
API 函数:GetSystemDirectory
Private Declare Function GetSystemDirectory Lib ″kernel32″ Alias ″GetSystemDirectoryA″(ByVal lpBuffer As String, ByVal nSize As Long) As Long
大家注意这个 API 函数和一个的用法完全一样,只是把相应的位置做一个修改就行了,因此这里就不在多讲了。
复制整个目录
(包含子目录及其所有文件)
假设我们想把″c:\vb″目录下的所有文件(包含其子目录)复制到″d:\vb″目录下。
程序代码如下:
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO-COPY′拷贝
SHFileOp.pFrom = ″c:\vb*.*″
′也可以指定成 ″c:\vb″
SHFileOp.pTO=″d:\vb″′目标目录
SHFileOp.fFlags = FOF-ALLOWUNDO+FOF-NOCONFIRMMKDIR
′在复制文件时若需要建立目录,不预先征询使用者即直接建立
SHFileOperation SHFileOp′执行
读取磁盘的空间及可用空间
API 函数:GetDiskFreeSpace
Private Declare Function GetDiskFreeSpace Lib ″kernel32″ Alias ″GetDiskFreeSpaceA″ (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long
参数说明:
lpRootPathName:驱动器根目录,以 C 盘为例,必须写成″C:\″,不可以写成″C:″或″C″。
lpSectorsPerCluste:每一簇的扇区数。
lpBytesPerSector:每一扇区的字节数。
lpNumberOfFreeClusters :可用的簇数。
lpTtoalNumberOfClusters:总簇数。
示例:
Dim Sectors As Long, Bytes As Long, Free As Long, Total As Long, FreeMB As Long, TotalMB As Long, WisMB As Long
GetDiskFreeSpace ″c:\ ″, Sectors, Bytes, Free, Total
FreeMB = Bytes * Sectors * Free \ 1024 \ 1024
′可用空间,以 MB 为单位
TotalMB = Bytes * Sectors * Total \ 1024 \ 1024
′总空间,以 MB 为单位
WisMB = TotalMB - FreeMB
′已用空间,以 MB 为单位
(VB爱好者乐园http://www.d1vb.com)
编注:
API是应用程序编程接口 (Application Program Interface) 的缩写,这是一组供应用程序使用的命令,用以向计算机的操作系统请求或执行更低级的设备访问操作。
读取 Windows 所在目录
API函数:GetWindowsDirectory Private Declare Function GetWindowsDirectory Lib″kernel32″ Alias ″GetWindowsDirectoryA″(ByVal lpBuffer As String, ByVal nSize As Long) As Long
Const MAX-PATH = 260
′定义足够长的字符串
Sub GetWinDir()′定义函数
Dim S As String, Length As Long
S = String(MAX-PATH, 0)′赋值
Length=GetWindowsDirectory(S, MAX-PATH)
′S为取得目录,MAX-PATH 为长度
S = Left(S, InStr(S, Chr(0)) - 1)
′去掉多余的空格
MsgBox ″Windows 路径=″ & S,″Win 目录″
End Sub
补充:S 和 MAX-PATH 的值是可以随便赋的,
如:Dim S as String *20
Length = GetWindowsDirectory(S,20)
不过,这两个的值,一定要够大(一定要大于系统的 Windows 的目录的字符数),不然就不能正常运行。
读取Windows\System 的所在目录
API 函数:GetSystemDirectory
Private Declare Function GetSystemDirectory Lib ″kernel32″ Alias ″GetSystemDirectoryA″(ByVal lpBuffer As String, ByVal nSize As Long) As Long
大家注意这个 API 函数和一个的用法完全一样,只是把相应的位置做一个修改就行了,因此这里就不在多讲了。
复制整个目录
(包含子目录及其所有文件)
假设我们想把″c:\vb″目录下的所有文件(包含其子目录)复制到″d:\vb″目录下。
程序代码如下:
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO-COPY′拷贝
SHFileOp.pFrom = ″c:\vb*.*″
′也可以指定成 ″c:\vb″
SHFileOp.pTO=″d:\vb″′目标目录
SHFileOp.fFlags = FOF-ALLOWUNDO+FOF-NOCONFIRMMKDIR
′在复制文件时若需要建立目录,不预先征询使用者即直接建立
SHFileOperation SHFileOp′执行
读取磁盘的空间及可用空间
API 函数:GetDiskFreeSpace
Private Declare Function GetDiskFreeSpace Lib ″kernel32″ Alias ″GetDiskFreeSpaceA″ (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long
参数说明:
lpRootPathName:驱动器根目录,以 C 盘为例,必须写成″C:\″,不可以写成″C:″或″C″。
lpSectorsPerCluste:每一簇的扇区数。
lpBytesPerSector:每一扇区的字节数。
lpNumberOfFreeClusters :可用的簇数。
lpTtoalNumberOfClusters:总簇数。
示例:
Dim Sectors As Long, Bytes As Long, Free As Long, Total As Long, FreeMB As Long, TotalMB As Long, WisMB As Long
GetDiskFreeSpace ″c:\ ″, Sectors, Bytes, Free, Total
FreeMB = Bytes * Sectors * Free \ 1024 \ 1024
′可用空间,以 MB 为单位
TotalMB = Bytes * Sectors * Total \ 1024 \ 1024
′总空间,以 MB 为单位
WisMB = TotalMB - FreeMB
′已用空间,以 MB 为单位
(VB爱好者乐园http://www.d1vb.com)
编注:
API是应用程序编程接口 (Application Program Interface) 的缩写,这是一组供应用程序使用的命令,用以向计算机的操作系统请求或执行更低级的设备访问操作。
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比