VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > vb >
  • 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) 的缩写,这是一组供应用程序使用的命令,用以向计算机的操作系统请求或执行更低级的设备访问操作。 

相关教程