当我上传大于2G得文件时put方法就报错:no data to trasfer 小于2G得没事
这是为什么呢?难到是bug?
大家给个解决办法呀 我得文件都是DVD盘制作得iso文件所以很大另一个问题:
我搜索一个文件夹得全部文件 不包括下一级文件夹得文件
...
dim s as string
SearchResult: TSearchRec;
......
s:=Format('%.2f',[SearchResult.Size/(1024*1024)])当文件比较大时 (大约2G左右)s返回'-XX' 而且数值xx和实际文件大小不同。
文件小得没有问题。
请大家帮忙
这是为什么呢?难到是bug?
大家给个解决办法呀 我得文件都是DVD盘制作得iso文件所以很大另一个问题:
我搜索一个文件夹得全部文件 不包括下一级文件夹得文件
...
dim s as string
SearchResult: TSearchRec;
......
s:=Format('%.2f',[SearchResult.Size/(1024*1024)])当文件比较大时 (大约2G左右)s返回'-XX' 而且数值xx和实际文件大小不同。
文件小得没有问题。
请大家帮忙
解决方案 »
- 用ADO连接EXCEL的问题,帮帮忙
- 在线等,急啊,还是关于dbgrid 中的数据导入到Excel出现的问题 (偶是超级菜鸟)
- 明天面试几个人,谁有好的上机测试题?
- 程序运行中出现如下错误:Access violation at address 00459389 in module 'project.exe'.Read of address 000002EC.是什么意思,如何解
- 原始大小的200%播放多媒体文件的代码包括flash,wma,rm
- 终于突破1000分了, 散分, 10分钟后结!!!!!
- 请问有没有控件可以做出漂亮的界面,最好有动画效果。
- 报表打印问题?
- 如何创建控件数组?
- 在TRichEdit中如何插入图片???
- 怎么取远程机的目录信息
- 新手求助:关于输出参数的问题!!
我一上传大文件>2G得就报错:no data to read
为什么?
官方版本Indy 9.0.18需要使用Int64
TSearchRec不支持的~
直接用Win32 API才OK
TSearchRec.FindData.nFileSizeHigh和nFileSizeLow两个域来读文件大小。
请大哥明示win32 api 获取文件大小属性方法关于TSearchRec 我是这样解决得
var s:longword;s:=SearchResult.Size取s得值
s: int64;
// ...
s := int64(SearchResult.FindData.nFileSizeHigh) shl 32 + SearchResult.FindData.nFileSizeLow;
现在当我传大文件时 该过程
procedure TfrmMirrorSend.ftpClientWorkBegin(Sender: TObject;
AWorkMode: TWorkMode; const AWorkCountMax: INTEGER);AWorkCountMax: INTEGER是integer类型会溢出得。
如何解决这个问题呢?我下载了upp_Indy_snapshot_2006-9-9.rar 不知能否解决这个问题。
修改4个相关文件的Integer为Int64
即可支持>2GB的文件
我得是delphi 7.0装前者是不是更好,安装之前要卸载delphi 自带得indy 嘛?如何卸载呢我装了后者后发现onwork事件 还是integer类型得。??
就是累计传送的字节 / 总量 * 100,再取整。(假设gauge的最大值设置为100)
在OnWork中,AWorkCount是指本次已传送的字节数,为什么还是integer呢?因为Win32上缓冲区最大也只能开到2GB(实际比这个还要小一点),当然不可能一次发送超过2GB的数据了,那需要多次发送。
AWorkMode: TWorkMode; const AWorkCountMax: INTEGER);
begin
ggProgress.maxvalue:=AWorkCountMax;
end;
当put发生时触发此事件 AWorkCountMax获得文件大小
但AWorkCountMax是integer类型,当传送>2G时就报错溢出了 因为他只能达到20亿。
如何处理呢?
修改Indy 4个源文件
全部更改为Int64接口,包括函数的实现部分,(提示: ReadStream和WriteStream是关键)修改后的Indy,支持>4GB的文件都是OK的至于如何修改Indy,那就自己搞吧~
结贴了谢谢兄弟们!
用delphi 安装盘可以嘛 ?