38.9.4.21 读取CF卡文件列表(指定类型,包括下面的子文件夹)

将CF卡中的文件列表输出到作为参数发送的文件。读取的文件列表是通过递归搜索“sDirectory”中指定文件夹而获取的所有文件。

函数名称

INT WINAPI EasyGetListRecursivelyInCard(LPCSTR sNodeName, LPCSTR sDirectory, INT* oiCount, LPCSTR sSaveFileName);

参数

sNodeName:站名称固定为#WinGP。

sDirectory:获取目录名称,全部用大写字符。仅支持如下目录。

oiCount:已读取的文件数

sSaveFileName:保存目录信息的文件名。在指定的文件中,stEasyRecursiveDirInfo格式化数组中的数据是以ioCount中返回的数量用二进制数据进行保存的。

struct stEasyRecursiveDirInfo {
  BYTE bFileName[8+1];// Filename (NULL terminated)
  BYTE bExt[3+1];// File extension (NULL terminated)
  BYTE bDummy[3];// Dummy
  DWORD dwFileSize;// File size
  BYTE bFileTimeStamp[8+1];// Time stamp of file (NULL terminated)
 BYTE bFolderName[260+1];// Folder name (NULL terminated.   0 is stored in the remaining part)
BYTE bDummy2[2];// Dummy-2
} ;

返回值

正常结束: 0

重大错误:错误代码

如果读取文件的列表中包含少于8个字符的文件名,或少于3个字符的文件扩展名,bFileName[8+1]和bExt[3+1]将显示如下。

bFileName[8+1]

当文件名少于8个字符时,开始的空位置用“0”填充,后面未定义。

bExt[3+1]

当文件扩展名少于3个字符时,开始的空位置用“0”填充,后面未定义。

(例如) 文件名和文件扩展名为“ABC.D”

bFileName[8+1]

0x410x420x430x00******************** (****表示未定义值)

bExt[3+1]

0x440x00******** (****表示未定义值)