republican 发表于 2010-4-13 13:50:44

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

本帖最后由 republican 于 2010-10-7 20:49 编辑

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

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

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

就没有额外的参数。

参考此贴:

http://www.autoitx.com/forum.php?mod=viewthread&tid=18840&page=1&extra=#pid219801

maker 发表于 2010-4-13 14:41:19

可以在配置文档或者注册表等外部存储相关参数

republican 发表于 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)

remme 发表于 2010-4-13 16:42:40

断点续传。。。基本上要用tcp直接读写包头信息了,否则如何定位?

republican 发表于 2010-4-13 18:02:39

断点续传。。。基本上要用tcp直接读写包头信息了,否则如何定位?
remme 发表于 2010-4-13 16:42 http://www.autoitx.com/images/common/back.gif

读取本地文件大小,再定位。

remme 发表于 2010-4-13 22:27:05

不是,你如何定位从服务器的文件上的哪个字节开始重新下载?

sensel 发表于 2010-4-14 07:03:36

FileOpen的话,新版的FileSetPos,旧版WinAPI.au3里的_WinAPI_SetFilePointer,都可以设置本地文件内部位置指针。
_FTP是没有现成的,不过你可以用_FTP_Command向服务器发送REST。

newuser 发表于 2010-4-14 09:01:50

回复 1# republican

目前还是无法理解,不过正在学习中

republican 发表于 2010-4-14 16:04:37

回复 6# remme

所以才在此发问,我回去研究研究7楼所说的资料。

republican 发表于 2010-4-14 16:05:05

FileOpen的话,新版的FileSetPos,旧版WinAPI.au3里的_WinAPI_SetFilePointer,都可以设置本地文件内部位置 ...
sensel 发表于 2010-4-14 07:03 http://www.autoitx.com/images/common/back.gif

十分感谢,我看看能否实现。

smokewu 发表于 2011-3-28 21:37:25

坐等例子大
页: [1]
查看完整版本: 为了断点续传,请问FileOpen和_FTP_FileOpen有否定位的参数?【已解决】