VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 6711|回复: 21

[求助] VB6调用API fileopen无法获取大文件句柄的问题

[复制链接]
发表于 2015-2-2 18:31:08 | 显示全部楼层 |阅读模式
本人在用VB6做一个复制文件,并以进度条提示,而且在复制过程中整个进程不会卡死
基本代码也写出来,经过测试2G以下的文件,使用 openfile均可以获取句柄并复制到另一个目录
而文件超过3G后,却获取不了句柄,何解?求助大神..

点评

为什么还用这过时的API呢?  发表于 2015-2-3 17:11
发表于 2015-2-3 10:37:28 | 显示全部楼层
当然应该用createfileW

点评

断点拷备程序 求助贴子地址:http://www.vbgood.com/thread-141143-1-1.html 1.把openfile改为createfile后,发现仍然读取不了>3G的文件 2.读取速度保持在5.5M/秒,这个和WINDOWS复制的速度相比太慢, 求解  发表于 2015-2-7 17:01
回复 支持 反对

使用道具 举报

发表于 2015-2-3 11:08:03 | 显示全部楼层
2楼正解,大于2G的文件,openfile是不对的

点评

断点拷备程序 求助贴子地址:http://www.vbgood.com/thread-141143-1-1.html 1.把openfile改为createfile后,发现仍然读取不了>3G的文件 2.读取速度保持在5.5M/秒,这个和WINDOWS复制的速度相比太慢, 求解  发表于 2015-2-7 17:02
回复 支持 反对

使用道具 举报

发表于 2015-2-3 11:37:48 | 显示全部楼层
openfile是为了兼容win98的存在!!

点评

断点拷备程序 求助贴子地址:http://www.vbgood.com/thread-141143-1-1.html 1.把openfile改为createfile后,发现仍然读取不了>3G的文件 2.读取速度保持在5.5M/秒,这个和WINDOWS复制的速度相比太慢, 求解  发表于 2015-2-7 17:02
回复 支持 反对

使用道具 举报

发表于 2015-2-3 14:47:52 | 显示全部楼层
win32下,使用CreateFile打开文件.

点评

断点拷备程序 求助贴子地址:http://www.vbgood.com/thread-141143-1-1.html 1.把openfile改为createfile后,发现仍然读取不了>3G的文件 2.读取速度保持在5.5M/秒,这个和WINDOWS复制的速度相比太慢, 求解  发表于 2015-2-7 17:02
回复 支持 反对

使用道具 举报

发表于 2015-2-3 20:51:37 | 显示全部楼层
在很久很久以前,openfile是用于windows 16位的,那时候4M内存是标配,那时候我们学校的硬盘是32M。。。。。

OpenFile
The OpenFile function creates, opens, reopens, or deletes a file.

This function is provided for compatibility with 16-bit versions of Windows. In particular, the OpenFile function cannot open a named pipe. Win32-based applications should use the CreateFile function.

点评

断点拷备程序 求助贴子地址:http://www.vbgood.com/thread-141143-1-1.html 1.把openfile改为createfile后,发现仍然读取不了>3G的文件 2.读取速度保持在5.5M/秒,这个和WINDOWS复制的速度相比太慢, 求解  发表于 2015-2-7 17:03
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-6 12:27:50 | 显示全部楼层
startbin321 发表于 2015-2-3 10:37
当然应该用createfileW

学习了,
最近在写一个复制大文件,不卡死,可以断点续传的小程序,
用了openfile,readfile,writefile和SetFilePointer,倒是忽略了用createfile,测试下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-6 12:28:10 | 显示全部楼层
wwswwswws 发表于 2015-2-3 11:08
2楼正解,大于2G的文件,openfile是不对的

学习了,感谢
最近在写一个复制大文件,不卡死,可以断点续传的小程序,
用了openfile,readfile,writefile和SetFilePointer,倒是忽略了用createfile,测试下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-6 12:28:24 | 显示全部楼层
19900603 发表于 2015-2-3 11:37
openfile是为了兼容win98的存在!!

谢谢,了解了,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-6 12:28:43 | 显示全部楼层
bxc1995 发表于 2015-2-3 14:47
win32下,使用CreateFile打开文件.

谢谢了
学习了,
最近在写一个复制大文件,不卡死,可以断点续传的小程序,
用了openfile,readfile,writefile和SetFilePointer,倒是忽略了用createfile,测试下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-5 12:24

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表