|
文件_枚举W | 整数型 | |
|
欲寻找的目录 | 字节集 | | | |
欲寻找的文件名 | 字节集 | | | | 文件数组 | 字节集 | | | | 是否带路径 | 逻辑型 | | | | 是否遍历子目录 | 逻辑型 | | | | 是否枚举文件夹 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
FileDir | 字节集 | | |
FindData | WIN32_FIND_DATAW | | |
hFind | 整数型 | | |
pFile | 整数型 | | |
dwSize | 整数型 | | |
FileName | 字节集 | | |
dwLen | 整数型 | | |
计次 | 整数型 | | |
FileDir =
删除Unicode结尾空白字节 (欲寻找的目录,
)
如果真 (取字节集右边 (FileDir, 2
) ≠
{ 92, 0
})
FileDir = FileDir +
{ 92, 0
}
如果真 (是否遍历子目录 =
假)
清除数组 (文件数组
)
计次循环首 (取数组成员数 (欲寻找的文件名
), 计次
)
hFind =
FindFirstFileW (FileDir + 欲寻找的文件名
[计次
], FindData
) 
如果真 (hFind ≠
#INVALID_HANDLE_VALUE )

循环判断首 ()


如果真 (是否枚举文件夹 =
假 且 位与 (FindData.dwFileAttributes,
#FILE_ATTRIBUTE_DIRECTORY ) ≠ 0
或 是否枚举文件夹
且 位与 (FindData.dwFileAttributes,
#FILE_ATTRIBUTE_DIRECTORY ) = 0
)


到循环尾 ()

pFile = 取数据_通用型_数组 (FindData.cFileName)


如果真 (pFile = 0
)


到循环尾 ()

dwSize = lstrlenW (pFile)


如果真 (dwSize = 0
)


到循环尾 ()

FileName = 指针到字节集 (pFile, dwSize × 2 + 2)


如果真 (FileName =
{ 46, 0, 0, 0
} 或 FileName =
{ 46, 0, 46, 0, 0, 0
})


到循环尾 ()


如果 (是否带路径
)


加入成员 (文件数组, FileDir + FileName
)


加入成员 (文件数组, FileName
)





循环判断尾 (FindNextFileW (hFind, FindData
))

FindClose (hFind
)

计次循环尾 ()
如果真 (是否遍历子目录
)
hFind =
FindFirstFileW (FileDir +
{ 42, 0, 0, 0
}, FindData
)
如果真 (hFind ≠
#INVALID_HANDLE_VALUE )

循环判断首 ()


pFile =
取数据_通用型_数组 (FindData.cFileName
)


如果真 (pFile = 0
)


到循环尾 ()

dwSize = lstrlenW (pFile)


如果真 (dwSize = 0
)


到循环尾 ()

FileName = 指针到字节集 (pFile, dwSize × 2 + 2)


如果真 (FileName =
{ 46, 0, 0, 0
} 或 FileName =
{ 46, 0, 46, 0, 0, 0
})


到循环尾 ()


如果真 (位与 (FindData.dwFileAttributes,
#FILE_ATTRIBUTE_DIRECTORY ) ≠ 0
)


文件_枚举W (FileDir + FileName, 欲寻找的文件名, 文件数组, 是否带路径, 是否遍历子目录, 是否枚举文件夹
)





循环判断尾 (FindNextFileW (hFind, FindData
))

FindClose (hFind
)
dwLen = 取数组成员数 (文件数组)返回 (dwLen
)