最近帮朋友的网吧做一个游戏更新的程序
思路是从网吧服务器上复制最新的文件到本地年硬盘上
然后开机自动运行
可惜我复制文件时调用了windows的API,而且复制时会弹出WINDOWS自己的复制进度窗体
而不是在后台操作
这样对网吧的安全很有影响我想做后台复制,然后给出进度条
哪位大哥帮帮忙了,文件操作这章我一直都没学好
重分感谢

解决方案 »

  1.   

    可以试一试用filesystemobject物件用流的方式打开文件,然后再保存。
      

  2.   

    急了用Shell函数调用copy命令都可以啊,调用时加上vbHide参数就行了。 :)
      

  3.   

    或者把FTP命令做成bat文件然后用楼上的方法执行此bat文件也可以阿。
      

  4.   

    或者用showwindow 隐藏复制文件的窗口
      

  5.   

    使用 FSO 
    Dim fso As New FileSystemObject
            fso.CopyFile 源文件路径\文件名, 目标路径\文件名
            Set fso = Nothing
      

  6.   

    "可惜我复制文件时调用了windows的API,而且复制时会弹出WINDOWS自己的复制进度窗体"你当CSDN没人用过API啊
      

  7.   

    楼主急吗?
    我现在外面,我也帮朋友搞一个自动更新的程序,只是还没有好完善,以后我们交流,
    我也是用的API,你查一下API,他有几个参数可以隐藏那个动画的。
    如果可以等我回去以后我把我的代码发给你,我们共同研究?
    我的msn:[email protected]
      

  8.   

    你可以用 FILECOPY 但是,没有复制进度条.
    如果你要想自已做一个的话,参考下面程序.[思路].设置一个动态二进制数组,将文件内容读入动态数组中.然后,将动态数组写到硬盘即可.
    '*注:FILENAME1是源文件.FILENAME2是目标文件.Dim Filek() As Byte
    Dim FileName1 As String
    Dim FileName2 As String
    Dim DelFlag As BooleanPrivate Sub Command1_Click()
       Dim Fnum As Long
       Dim Flen As Long
       Dim Fname As String
       Dim A As Long   On Error Resume Next   '取文件长度
       Flen = FileLen(FileName1)
       ReDim Filek(1 To Flen)
       Fnum = FreeFile
       '读文件入一个数组
       Open FileName1 For Binary Access Read As #Fnum
                Get #Fnum, 1, Filek
        Close #Fnum
    '--------------------------------------------------------------------
        DoEvents
        Fnum = FreeFile
        '写文件
        Open FileName2 For Binary As #Fnum
              Put #Fnum, , Filek
        Close #Fnum
        Erase Filek
    End Sub
      

  9.   

    如果需要显示进度条,你可以修改一下,在读/写时让它一个字节一个字节地操作即可.
    注意一点:由于VB中的进度条MAX是 32767.而一般的文件都超出这个长度.所以,你设置进度条的MAX值是:MAX=Flen/1000 或者更大,你可以调整.
      

  10.   

    filecopy可以用于远程,只要你给出正确的网络路径名如server\\updata\filename.exe
    如果用FileSystemObject需要在引用中先引用才可以