当前位置:编程学习 > VB >>

高分求助:拷贝文件的时候如何知道过程已经成功结束呢?

--------------------编程问答-------------------- 急,需要帮助! --------------------编程问答-------------------- 为什么没人帮忙看看呢?难道太简单了? --------------------编程问答-------------------- 自己程序CopyFile还是外部程序?如果是自己的程序拷贝的话,执行下一句语句时,就是拷完毕时。 --------------------编程问答-------------------- 楼主没把环境条件说清楚…………

友情Up..............
--------------------编程问答-------------------- lz完全没有给代码,拷贝文件方法很多,不知道方法怎么知道拷贝过程如何? --------------------编程问答-------------------- 楼主问得含糊,所以别人答得也含糊:) --------------------编程问答-------------------- 问的马虎,答的人也只能马虎回答了. --------------------编程问答-------------------- Friendly Up! --------------------编程问答--------------------
引用 3 楼 bestbadgod 的回复:
自己程序CopyFile还是外部程序?如果是自己的程序拷贝的话,执行下一句语句时,就是拷完毕时。


下一句就在label里写 “copy 已 ok 继续米西吧~” --------------------编程问答-------------------- 不好意思,让我详细的解释一下Scenario

我现在有个requirement,就是需要等到一个file copy/download到本地的一个folder之后执行upload这个文件到SQL SERVER.
现在的问题是,当这个文件download到本地的时候,它不是一次性download结束,而是文件的size不停的增加,那我得那个upload的程序是根据判断文件是不是存在来决定upload的,一旦有文件found了,就可以upload,而不会监测到这个文件是不是已经download结束,是不是已经是个完整的文件。
所以想知道在这样的情况下,有没有什么编程办法知道一个文件是不是已经完成了download或者copy,这样我就可以自动触发那个upload的程序了
希望我的解释能够让大家明白我的需求了,谢谢了 --------------------编程问答-------------------- 那也要知道是怎么download的啊,不知道下载信息如果传递的,也就不知道何时结束。

下载文件一般都是先发个头信息包,里面包括文件名,大小等,所以至少要知道有没有此数据包,还有数据包结构以及怎么收到的。然后通过修改下载代码或者比较文件大小来判断是否结束download. --------------------编程问答-------------------- 究竟是download还是copy啊,二者基本上不是一回事,如果是download,分是直接使用SOCKET还是使用INET还是用URLDownloadToFile之类的API?就是COPY,是使用VB的FileCopy,还是使用ShFileOperation之类的API,还是自己读源文件然后分块写入目标文件? --------------------编程问答-------------------- FileLen 函数

返回一个 Long,代表一个文件的长度,单位是字节。

语法

FileLen(pathname)

必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。
--------------------编程问答--------------------
引用 12 楼 lyserver 的回复:
究竟是download还是copy啊,二者基本上不是一回事,如果是download,分是直接使用SOCKET还是使用INET还是用URLDownloadToFile之类的API?就是COPY,是使用VB的FileCopy,还是使用ShFileOperation之类的API,还是自己读源文件然后分块写入目标文件?


仰望。 --------------------编程问答-------------------- 看来还是没有理解我得意思,怪我解释的不清楚哦
其实这个COPY或者DOWNLOAD就是一个正常的手动过程,我要做的程序是怎么监视到这个COPY或者DOWNLOAD结束了,因为COPY的文件或者DOWNLOAD的文件它的Size是不停的增加的,我需要知道什么时候这个file已经完全copy或者download结束了 --------------------编程问答-------------------- 难道没有人可以给点Clue吗? --------------------编程问答-------------------- 使用URLDownloadToFile或者SHFileOperation等API时,当前线程会一直等待到API操作结束才继续执行下一条语句。
在单进程中无法做到实时监视完成,只能等待到函数执行结束返回后程序才继续,就是假死现象。
LZ可以开一个线程调用这些API,然后主线程等待返回即可。 --------------------编程问答-------------------- 独占打开成功就说明下载完成了。
Private Sub Command1_Click()
Dim after As Double
Dim f As Integer
    Command1.Enabled = False
    On Error GoTo ERR1
    after = Now + 60# / 3600# / 24#
    f = FreeFile()
    Do
    REOPEN1:
        DoEvents
        If Now > after Then
            MsgBox "Wait 60s overtime!"
            Exit Sub
        End If
        Open "c:\downloadingfile.ext" For Input Lock Read Write As #f
        Close #f
        Exit Do
    Loop
    MsgBox "The file c:\downloadingfile.ext downloaded."
    Command1.Enabled = True
    Exit Sub
ERR1:
    Resume REOPEN1
End Sub
--------------------编程问答-------------------- Hook相关消息?没有试过,不过我觉得这个思路是可行的。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,