38.9.4.19 读取CF卡文件列表(指定可选文件夹名称,包括下面的子文件夹)

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

函数名称

INT WINAPI EasyGetListRecursivelyInCfCard(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];// File timestamp (NULL terminated)
  BYTE bFolderName[260+1];// FolderName (NULL terminated.0 is stored in the remaining part)
BYTE bDummy2[2];// Dummy-2
} ;

返回值(NULL)

正常结束: 0

重大错误:错误代码

特殊项目

有关bFileTimeStamp的更多信息:8个字节被分为两部分。上面的4个字节用来保存MS-DOS格式时间,下面的4个字节用来保存MS-DOS格式日期,两者都采用十六进制值。

MS-DOS格式日期和时间格式如下。

示例:如果20C42C22, 2C22是以十六进制显示的MS-DOS日期,20C4是以十六进制显示的MS-DOS时间。因此,它表示2002/1/2 04:06:08。

MS-DOS格式时间。日期使用如下格式将日期转换成16位值。

如果读取文件的列表中包含少于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******** (****表示未定义值)