zoukankan      html  css  js  c++  java
  • 如何实现遍历文件夹中的所有文件

    '--------------------------------------------------------------------------------
    '把下面放到模块中
    Option Explicit
    
    
    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 Const MAX_PATH = 260
    Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
    Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
    Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
    Public Const FILE_ATTRIBUTE_HIDDEN = &H2
    Public Const FILE_ATTRIBUTE_NORMAL = &H80
    Public Const FILE_ATTRIBUTE_READONLY = &H1
    Public Const FILE_ATTRIBUTE_SYSTEM = &H4
    Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
    
    '自定义数据类型FILETIME和WIN32_FIND_DATA的定义
    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
    ----------------------
    '--------------------------------------------------------------------------------
    '           把当前文件夹路径下的所有文件入到listview中
    '--------------------------------------------------------------------------------
    Private Sub finfiles(tCurrentdir As String)
        Dim itmX As ListItem
        Dim tFindData As WIN32_FIND_DATA
        Dim strFileName As String
        Dim lHandle As Long
        Dim CountFolder As Integer
        Dim CountFiles As Integer
        CountFolder = 0
        CountFiles = 0
        ListView1.ListItems.Clear
        lHandle = FindFirstFile(tCurrentdir & "*.*", tFindData)
        If lHandle = 0 Then
           Set itmX = ListView1.ListItems.Add(, , strFileName & "找不到文件")
           Exit Sub
        End If
       strFileName = fDelInvaildChr(tFindData.cFileName)
       Do While True
            tFindData.cFileName = ""
            If FindNextFile(lHandle, tFindData) = 0 Then
                FindClose (lHandle)
                Exit Do
            Else
                strFileName = fDelInvaildChr(tFindData.cFileName)
                If tFindData.dwFileAttributes = &H10 Then
                    If strFileName <> "." And strFileName <> "." Then
                        Set itmX = ListView1.ListItems.Add(, , strFileName)
                        itmX.SmallIcon = 1
                        CountFolder = CountFolder + 1
                    End If
                Else
                    Debug.Print InStr(LCase(Right(strFileName, 3)), ExtendFileName)
                    If InStr(ExtendFileName, LCase(Right(strFileName, 3))) > 0 Then
                        Set itmX = ListView1.ListItems.Add(, , strFileName)
                        itmX.SubItems(1) = CStr(FileLen(tCurrentdir & "" & strFileName))
                        itmX.SmallIcon = 2
                        itmX.SubItems(2) = FileDateTime(tCurrentdir & "" & strFileName)
                        CountFiles = CountFiles + 1
                    End If
                End If
            End If
        Loop
        ListView1.Sorted = True
        ListView1.SortKey = 1
        StatusBar1.Panels(2).Text = CurrentDir
        StatusBar1.Panels(3).Text = "文件夹:" & CountFolder & "  文件:" & CountFiles
    End Sub
  • 相关阅读:
    codeblocks-17.12mingw-nosetup(mingw编译,绿色免安装版)的下载、安装及设置一
    我的Qt历程1:第一个Qt程序
    单一职责-依赖倒转-代理模式-迭代器模式等
    结合你以往的工作经验谈谈高并发应用的性能优化措施
    如何优化数据库,如何提高数据库的性能?
    在一个千万级的数据库查询中,如何提高查询效率?
    如何提高页面的显示速度?假如一个页面的加载时间是10.89s,你会用什么方式进行优化?
    强制提高网站性能有什么办法
    简述httpModule与HttpHandler
    EntityFramework的效率与ADO.Net的效率哪个高?
  • 原文地址:https://www.cnblogs.com/Spacecup/p/3642866.html
Copyright © 2011-2022 走看看