|
楼主 |
发表于 2016-11-15 11:33:37
|
显示全部楼层
四川省成都市
本帖最后由 颩厾 于 2016-11-15 11:43 编辑
问题已解决。
原因api返回值为无符号整数型,易语言无此类型,产生溢出。做如下修改可正常输出文件大小:
|
目录列表 | 整数型 | | |
欲列出的文件类型 | 文本型 | | | | 欲列出的文件属性 | 整数型 | | | | 存放文件名的数组 | 文本型 | | | | 存放文件属性数组 | 整数型 | | | | 存放文件尺寸数组 | 长整数型 | | | | 存放文件时间数组 | 日期时间型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | hFind | 整数型 | | | 文件信息 | 查找的文件信息 | | | 局_目录名 | 文本型 | | | 文件大小 | 长整数型 | | 2 | 临时字节集 | 字节集 | | 2 | 如果真 (欲列出的文件类型 = “”)欲列出的文件类型 = “*.*”清除数组 (存放文件名的数组)清除数组 (存放文件属性数组 )清除数组 (存放文件尺寸数组 )清除数组 (存放文件时间数组 )数组清零 (文件大小 )数组清零 (临时字节集 )如果真 (连接句柄 = 0 )返回 (0 )如果真 (是否为空 (欲列出的文件属性 )) 欲列出的文件属性 = 183 hFind = FtpFindFirstFileA (连接句柄, 欲列出的文件类型, 文件信息, 0, 0)如果真 (hFind = 0 )返回 (0 )循环判断首 ()局_目录名 = 字节数组_到文本 (文件信息.cFileName )判断 (位与 (文件信息.dwFileAttributes, 欲列出的文件属性 ) = 0 )到循环尾 ()判断 (取文本左边 (局_目录名, 1 ) = “.”)到循环尾 ()加入成员 (存放文件名的数组, 局_目录名)加入成员 (存放文件属性数组, 文件信息.dwFileAttributes )临时字节集 [1 ] = 到字节集 (文件信息.nFileSizeLow )临时字节集 [2 ] = 到字节集 (文件信息.nFileSizeHigh )文件大小 [1 ] = 取字节集数据 (临时字节集 [1 ], #长整数型, )文件大小 [2 ] = 取字节集数据 (临时字节集 [2 ], #长整数型, )加入成员 (存放文件尺寸数组, 文件大小 [1 ] + 文件大小 [2 ] × 4294967296 )加入成员 (存放文件时间数组, 系统_时间变时间 (文件信息.ftLastWriteTime )) 处理事件 ()循环判断尾 (InternetFindNextFileA (hFind, 文件信息 ) ≠ 0 )InternetCloseHandle (hFind )返回 (取数组成员数 (存放文件名的数组 ))
|
|