在 VB 编程中经常需要和文件系统打交道,比如获取硬盘的剩余空间、判断文件夹或文件是否存在等。在VB 推出文件系统对象(File System Object)以前,完成这些功能需要调用 Windows API 函数或者使用一些比较复杂的过程来实现,使编程复杂、可靠性差又容易出错。使用 Windows 提供的的文件系统对象,一切变得简单多了。以下笔者举出一些编程中比较常用的例子,以函数或过程的形式提供给大家,读者可在编程中直接使用,也可以改进后实现更为强大的功能。
    要应用 FSO 对象,须要引用一个名为 Scripting 的类型库,方法是,执行 VB6.0 的菜单项“工程/引用”,添加引用列表框中的“Microsoft Scripting Runtime”一项。然后我们在“对象浏览器”中就可以看到 Scripting 类型库下的众多对象及其方法、属性。
  1、判断光驱的盘符:

Function GetCDROM() ' 返回光驱的盘符(字母)
    Dim Fso As New FileSystemObject '创建 FSO 对象的一个实例
    Dim FsoDrive As Drive, FsoDrives As Drives '定义驱动器、驱动器集合对象
    Set FsoDrives = Fso.Drives
    For Each FsoDrive In FsoDrives '遍历所有可用的驱动器
        If FsoDrive.DriveType = CDrom Then '如果驱动器的类型为 CDrom
            GetCDROM = FsoDrive.DriveLetter '输出其盘符
        Else
            GetCDROM = ""
        End If
    Next
    Set Fso = Nothing
    Set FsoDrive = Nothing
    Set FsoDrives = Nothing
End Function

2、判断文件、文件夹是否存在:


'返回布尔值
'True 存在,False 不存在,filername 文件名
Function FileExist(filename As String)
    Dim Fso As New FileSystemObject
    If Fso.FileExists(filename) = True Then
        FileExist = True
    Else
        FileExist = False
    End If
    Set Fso = Nothing
End Function
'返回布尔值
'True 存在,False 不存在,foldername 文件夹
Function FolderExist(foldername As String)
    Dim Fso As New FileSystemObject
    If Fso.FolderExists(foldername) = True Then
        FolderExist = True
    Else
        FolderExist = False
    End If
    Set Fso = Nothing
   End Function

3、获取驱动器参数:


'返回磁盘总空间大小(单位:M),Drive = 盘符 A ,C, D ...
Function AllSpace(Drive As String)
    Dim Fso As New FileSystemObject, Drv As Drive
    Set Drv = Fso.GetDrive(Drive) '得到 Drv 对象的实例
    If Drv.IsReady Then '如果该驱动器存在(软驱或光驱里有盘片,硬盘存取正常)
    AllSpace = Format$(Drv.TotalSize / (2 ^ 20), "0.00") '将字节转换为兆
Else
    AllSpace = 0
End If
Set Fso = Nothing
Set Drv = Nothing
End Function
'返回磁盘可用空间大小(单位:M),Drive = 盘符 A ,C, D ...
Function FreeSpace(Drive)
    Dim Fso As New FileSystemObject, Drv As Drive
    Set Drv = Fso.GetDrive(Drive)
    If Drv.IsReady Then
        FreeSpace = Format$(Drv.FreeSpace / (2 ^ 20), "0.00")
    End If
    Set Fso = Nothing
    Set Drv = Nothing
End Function
'获取驱动器文件系统类型,Drive = 盘符 A ,C, D ...
Function FsType(Drive As String)
    Dim Fso As New FileSystemObject, Drv As Drive
    Set Drv = Fso.GetDrive(Drive)
    If Drv.IsReady Then
        FsType = Drv.FileSystem
    Else
        FsType = ""
    End If
    Set Fso = Nothing
    Set Drv = Nothing
End Function

4,获取系统文件夹路径:


'返回 Windows 文件夹路径
Function GetWindir()
    Dim Fso As New FileSystemObject
    GetWindir = Fso.GetSpecialFolder(WindowsFolder)
    Set Fso = Nothing
End Function
'返回 Windows\System 文件夹路径
Function GetWinSysdir()
    Dim Fso As New FileSystemObject
    GetWinSysdir = Fso.GetSpecialFolder(SystemFolder)
    Set Fso = Nothing
End Function

5,综合运用:一个文件备份通用过程:

'Filename = 文件名,Drive = 驱动器,Folder = 文件夹(一层)
Sub BackupFile(Filename As String, Drive As String, Folder As String)
    Dim Fso As New FileSystemObject '创建 FSO 对象实例
    Dim Dest_path As String, Counter As Long
    Counter = 0
    Do While Counter < 6 '如果驱动器没准备好,继续检测。共检测 6 秒
        Counter = Counter + 1
        Call Waitfor(1) '间隔 1 秒
        If Fso.Drives(Drive).IsReady = True Then
            Exit Do
        End If
    Loop
    If Fso.Drives(Drive).IsReady = False Then '6 秒后目标盘仍未准备就绪,退出
        MsgBox " 目标驱动器 " & Drive & " 没有准备好! ", vbCritical
        Exit Sub
    End If
    If Fso.GetDrive(Drive).FreeSpace < Fso.GetFile(Filename).Size Then
        MsgBox "目标驱动器空间太小!", vbCritical '目标驱动器空间不够,退出
        Exit Sub
    End If
    If Right$(Drive, 1) <> ":" Then
        Drive = Drive & ":"
    End If
    If Left$(Folder, 1) <> "\" Then
        Folder = "\" & Folder
    End If
    If Right$(Folder, 1) <> "\" Then
        Folder = Folder & "\"
    End If
    Dest_path = Drive & Folder
    If Not Fso.FolderExists(Dest_path) Then '如果目标文件夹不存在,创建之
        Fso.CreateFolder Dest_path
    End If
    Fso.CopyFile Filename, Dest_path & Fso.GetFileName(Filename), True
    '拷贝,直接覆盖同名文件
    MsgBox " 文件备份完毕。", vbOKOnly
    Set Fso = Nothing
End Sub
Private Sub Waitfor(Delay As Single) '延时过程,Delay 单位约为 1 秒
    Dim StartTime As Single
    StartTime = Timer
    Do Until (Timer - StartTime) > Delay
    Loop
   End Sub

摘自:网络整理

相关文章参考:

★VB中FSO的调用的两种方法

在 VB 中应用 FSO 对象模型介绍(摘自网络)

[转] Vb中FSO 对象的介绍

★[vb]FSO对象模型在VB中的应用

★FSO对象新建、打开、保存文件

★VB使用FileSystemObject对象写文件


★VB部分相关文章推荐:

※vb中line的用法[转]

※画图工具的VB实现

※VB 一个获得自己外网 IP 地址的程序代码

※VB程序中实现IP地址子网掩码网关DNS的更改 [转]

※在 VB 中应用 FSO 对象模型介绍(摘自网络)

※[转] Vb中FSO 对象的介绍

※VB 画坐标轴

※VB 二进制文件的操作

※[VB]BMP转JPGVB中KeyCode常数用法

※vb实时曲线的绘制和保存

※VB操作EXCEL

※vb初学回顾:最大公约数 最小公倍数 素数求取

※vb 关于窗口样式的API以及处理文本的API参考

※【引用】在VB6.0中实现弹出式菜单的几种方法

※【引用】URLDownloadToFile_VB下载文件!

※利用WinRar压缩和解压缩文件

※VB 剪切板

※VB实现指示窗口中拖动方框的程序

※VB绘制走动的表针

※如何用VB制作DLL文件

※【引用】VB修改IP地址

※VB多窗体退出代码

※[转]VB:如何检测到U盘的插拔(源代码)

※巧用SendMessage函数扩展Treeview功能

※vb中如何在任务管理器里面隐藏应用程序进程

※如何实现VB与EXCEL的无缝连接

※一个API方式存取日志文件的模块[VB]

※VB用记录集填充表格函数

※VB打开文本文件各种方法

※vb ClipBoard 剪切板应用(复制剪切粘贴)

※【引用】窗口处理技巧大全 vb(窗体控件)

※【转】 Md rd命令之VB

※vb:读写文本文件

※在vb中实现真正锁定的带自定义菜单的文本控件

※【引用】使用CommonDialog的ShowSave后如何判断是保存还是※取消?

※vb 关于commondialog的多选VB获取Windows操作系统所有版本

※vb UTF文本文件访问

※VB编程中的Unicode vs Ansi

※VB编PiView4注册机

※VB获取超过2G文件的大小

※比CopyMemory还要快的函数SuperCopyMemory

※VB:编程效率快步提高之:十七种可用一行代码完成的技巧

※VB画出来的五星红旗

※Qt第一印象——Qte与Qt


更多精彩>>>

[转] Vb中FSO 对象的介绍相关推荐

  1. VB中FSO的调用的两种方法

    方法一:   Dim   objFso      Set   objFso   =   CreateObject("Scripting.FileSystemObject")    ...

  2. 计算机编程中对象是什么意思,vb中“要求对象”是什么意思

    vb中"要求对象"是什么意思 Sub fill_grid(sql_str, grid_name) '自定义过程是将数据表中的数据项填充到网格中 If rs.State <&g ...

  3. VB 中 FSO 对象模型介绍

    在 VB 中应用 FSO 对象模型介绍 从 Visual Basic 的第一版至今,VB 中有关文件的处理都是通过使用 Open .Write 以及其它一些相关的语句和函数来实现的.随着软件技术的不断 ...

  4. vb中可视对象的操作

    问题 : 在调试机房结账的部分,这两部分总是出问题,实时错误424. 错误解释: 未找到窗体(错误 424) 后来通过大量的查阅,找到了答案. MSHFlexGrid1是一个"控件" ...

  5. FSO对象新建、打开、保存文件

    文件管理: 语句管理:打开.open----for output(append)===写操作 Input-----write(print)通过input进行读操作 Close---关闭文件 FSO-- ...

  6. vb中findwindow的疑惑

    目的是学习使用findwindow的方法  |问题是程序运行得不到正确答案 步骤是 : 'Module Module1 //模块中声明findwindow Declare Function FindW ...

  7. VB中的format格式化函数

    VB Format函数 Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 - - - - - - - - - - - - - - - ...

  8. VB中字符串匹配的多种方式

    这段时间在移植项目的过程中,起初我想判断一个字符串中是否存在某字符(串),直接的使用方法是用instr(start,string1,string2,VB compare),但经过分析在VB中可以只用一 ...

  9. vb中line的用法[转]

    绘制方框 可使用 Line 方法绘制并填充方框.下列示例画出一个方框,其左上角为 (500, 500),每边长为 1,000 : Line (500, 500)–Step(1000, 0) Line ...

最新文章

  1. 结对编程-马尔科夫链作业成绩
  2. Codeforces Round #715 (Div. 1) B. Almost Sorted 找规律
  3. SSM框架Spring+SpringMVC+MyBatis——详细整合教程
  4. 马云宣布退休计划后,阿里巴巴组织架构再次全面升级
  5. Oracle中的左连接与右连接
  6. 28. HTTP、SSL/TLS和HTTPS协议的区别与联系
  7. 高通QFIL刷机 安装9008驱动
  8. linux合并pdf命令,LINUX下合并PDF
  9. 工序能力指数Cp判定标准(附免费CPK计算工具)
  10. 绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?
  11. PS画实线、虚线箭头
  12. tar压缩文件时忽略指定文件夹、文件
  13. word 宏命令批量把当前文件夹下的doc另存为docx格式
  14. ARP病毒的分析与防治
  15. 数据库常见问题:服务器'SQL SERVER'上的 MSDTC 不可用
  16. 电子词典(用map改写)
  17. 日系小清新PPT模板
  18. 记一次--冲动租房--搞得身心疲惫
  19. 欧洲e级超级计算机,美国将在2021年获得世界上第一台E级计算机
  20. 凤凰FM电台 v7.3.0

热门文章

  1. 成为一名架构师得学习哪些知识?
  2. Java程序员必会!没有返回值的构造函数是怎么完成赋值的?
  3. 如何用分库分表的9种分布式主键ID生成方案?附小技巧
  4. office图标修复工具_买电脑送Office,可你知道怎样才算用上吗?
  5. 无法完成您的itunes store的请求_iTunes 谢幕,盘点它的这 18 年
  6. u盘锁电脑_手机空间不足?U盘来辅助,一招解决问题
  7. php发卡平台源码免费,php源码 免费开源的云尚发卡V1.5.7 个人发卡平台源码 免费源码分享...
  8. 户外lisp导向牌如何安装_安装案例|户外标识牌常用安装方法
  9. qq为何没有linux版本,如何安装linux版本QQ?
  10. java服务端高并发问题_Java服务端两个常见的并发错误