|
7楼

楼主 |
发表于 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 )返回 (取数组成员数 (存放文件名的数组 ))
|
|