王朝网络
分享
 
 
 

Visual Basic文件系统操作一览

王朝厨房·作者佚名  2007-01-04
宽屏版  字体: |||超大  

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) 的缩写,这是一组供应用程序使用的命令,用以向计算机的操作系统请求或执行更低级的设备访问操作。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有