找回密码
 加入
搜索
查看: 5699|回复: 10

[网络通信] 为了断点续传,请问FileOpen和_FTP_FileOpen有否定位的参数?【已解决】

  [复制链接]
发表于 2010-4-13 13:50:44 | 显示全部楼层 |阅读模式
本帖最后由 republican 于 2010-10-7 20:49 编辑

为了断点续传,请问FileOpen和_FTP_FileOpen有否定位的参数?

我现在写了循环下载多文件的过程,唯一的缺陷是不支持断点续传,因为没有找到定位文件流的参数,估特此询问。

如:
FileOpen ( "文件名" [, 模式 ] )

就没有额外的参数。

参考此贴:

http://www.autoitx.com/forum.php ... mp;extra=#pid219801

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-4-13 14:41:19 | 显示全部楼层
可以在配置文档或者注册表等外部存储相关参数
 楼主| 发表于 2010-4-13 16:16:14 | 显示全部楼层
如果是配置文档的话应该如何实现?


_FTP_FileOpen的说明如下,
_FTP_FileOpen($hConnect, $lpszFileName [, $dwAccess = 0x80000000 [, $dwFlags = 2 [, $dwContext = 0]]])

我不清楚$dwAccess应该如何使用。

附部分代码:
$fFilesize=_FTP_FileGetSize($fConnect,$NetPathResult)
$fFileOpen1=_FTP_FileOpen($fConnect,$NetPathResult)
$lFileOpen1=FileOpen($SaveDir & '\' & $NetPathResult,2+8+16)
while 1
    $fFileRead=_FTP_FileRead($fFileOpen1,256 * 1024);1024 *1024)
    If @error = -1 Then exit loop
    $lFIlewrite=FileWrite($lFileOpen1,$fFileRead)
wend
FileClose($lFileOpen1)
_FTP_FileClose($fFileOpen1)
发表于 2010-4-13 16:42:40 | 显示全部楼层
断点续传。。。基本上要用tcp直接读写包头信息了,否则如何定位?
 楼主| 发表于 2010-4-13 18:02:39 | 显示全部楼层
断点续传。。。基本上要用tcp直接读写包头信息了,否则如何定位?
remme 发表于 2010-4-13 16:42


读取本地文件大小,再定位。
发表于 2010-4-13 22:27:05 | 显示全部楼层
不是,你如何定位从服务器的文件上的哪个字节开始重新下载?
发表于 2010-4-14 07:03:36 | 显示全部楼层
FileOpen的话,新版的FileSetPos,旧版WinAPI.au3里的_WinAPI_SetFilePointer,都可以设置本地文件内部位置指针。
_FTP是没有现成的,不过你可以用_FTP_Command向服务器发送REST。
发表于 2010-4-14 09:01:50 | 显示全部楼层
回复 1# republican

目前还是无法理解,不过正在学习中
 楼主| 发表于 2010-4-14 16:04:37 | 显示全部楼层
回复 6# remme

所以才在此发问,我回去研究研究7楼所说的资料。
 楼主| 发表于 2010-4-14 16:05:05 | 显示全部楼层
FileOpen的话,新版的FileSetPos,旧版WinAPI.au3里的_WinAPI_SetFilePointer,都可以设置本地文件内部位置 ...
sensel 发表于 2010-4-14 07:03


十分感谢,我看看能否实现。
发表于 2011-3-28 21:37:25 | 显示全部楼层
坐等例子大
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 08:57 , Processed in 0.083493 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表