转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB中枚举指定目录下所有文件的方法         ★★★★

VB中枚举指定目录下所有文件的方法

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1362 更新时间:2009/4/23 15:43:07

有同学问我这个问题,我就把代码贴在这里吧。

Module1.bas文件:
Public Const MAX_PATH = 260

Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const INVALID_HANDLE_VALUE = -1


Public Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
End Type

Public Type WIN32_FIND_DATA
        dwFileAttributes As Long
        ftCreationTime As FILETIME
        ftLastAccessTime As FILETIME
        ftLastWriteTime As FILETIME
        nFileSizeHigh As Long
        nFileSizeLow As Long
        dwReserved0 As Long
        dwReserved1 As Long
        cFileName As String * MAX_PATH
        cAlternate As String * 14
End Type

Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long


Public Function GetFullAllFileFilter(Directory As String) As String
    GetFullAllFileFilter = Directory + "\*.*"
End Function


frmMain.frm文件:
VERSION 5.00
Begin VB.Form frmMain
   BorderStyle     =   3  ''''Fixed Dialog
   Caption         =   "Enum Files Demo"
   ClientHeight    =   4770
   ClientLeft      =   3210
   ClientTop       =   1905
   ClientWidth     =   4920
   BeginProperty Font
      Name            =   "宋体"
      Size            =   9
      Charset         =   134
      Weight          =   400
      Underline       =   0   ''''False
      Italic          =   0   ''''False
      Strikethrough   =   0   ''''False
   EndProperty
   LinkTopic       =   "Form1"
   MaxButton       =   0   ''''False
   MinButton       =   0   ''''False
   ScaleHeight     =   4770
   ScaleWidth      =   4920
   ShowInTaskbar   =   0   ''''False
   Begin VB.CommandButton cmdList
      Caption         =   "&EnumFiles"
      Height          =   375
      Left            =   3600
      TabIndex        =   3
      Top             =   1800
      Width           =   1215
   End
   Begin VB.DirListBox Dir
      Height          =   1140
      Left            =   0
      TabIndex        =   2
      Top             =   480
      Width           =   4935
   End
   Begin VB.DriveListBox Drive
      Height          =   300
      Left            =   0
      TabIndex        =   1
      Top             =   120
      Width           =   4935
   End
   Begin VB.ListBox lstFileNames
      Height          =   2400
      ItemData        =   "frmMain.frx":0000
      Left            =   0
      List            =   "frmMain.frx":0002
      TabIndex        =   0
      Top             =   2280
      Width           =   4935
   End
   Begin VB.Label Label1
      Caption         =   "Click EnumFiles button to list all files in specified directory."
      Height          =   495
      Left            =   120
      TabIndex        =   4
      Top             =   1680
      Width           =   3375
   End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub cmdList_Click()
    Dim lpFileData As WIN32_FIND_DATA       '''' 保存找到的文件的信息
    Dim hFindFile As Long                   '''' 文件查找句柄
    Dim FindPattern As String               '''' 查询的文件模式
    Dim tmp As Boolean
   
    '''' 获得模式
    FindPattern = GetFullAllFileFilter(Dir.Path)
   
    '''' 查找第一个文件
    hFindFile = FindFirstFile(FindPattern, lpFileData)
   
    '''' 如果没有找到
    If hFindFile = INVALID_HANDLE_VALUE Then
        Exit Sub
    End If
   
    '''' 清除列表
    lstFileNames.Clear
   
    '''' 设置临时变量
    tmp = True
   
    Do While tmp
        '''' 如果找到的是文件而不是目录
        ''''(如果连隐藏文件都要一并找出,该条件改为:
        '''' If lpFileData.dwFileAttributes And (FILE_ATTRIBUTE_ARCHIVE OR FILE_ATTRIBUTE_HIDDEN) Then ...)
        If lpFileData.dwFileAttributes And FILE_ATTRIBUTE_ARCHIVE Then
            '''' 将文件名添加到列表中
            lstFileNames.AddItem lpFileData.cFileName
        End If
        '''' 查找下一个文件
        tmp = FindNextFile(hFindFile, lpFileData)
    Loop
    '''' 全部查询完毕,关闭句柄
    FindClose hFindFile
End Sub

Private Sub Drive_Change()
    Dir.Path = Drive.Drive
End Sub

Private Sub Form_Load()
    Dir.Path = Drive.Drive
End Sub

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台