哪位老大帮忙编一下啊!谢谢了!目录结构:
c:\log\file\2007
c:\log\file\2008
c:\log\file\2009
c:\log\file\logXXXXXX程序目的:
1,获取c:\log\file\logXXXXXX这个目录的XXXXXX值(每台机器都是这样以log开头+数字的文件夹名)
2,拷贝c:\log\file\logXXXXXX目录下以log开头的文件(如log1020.txt)到匿名登陆的FTP服务器XXXXXX目录下Private Sub Form_Load()
  Dim Riqi As String, Year As String, Path As String, S As String  Riqi = Format(Date, "mmdd")
  Year = Format(Date, "yyyy")
  Path = "C:\LOG\file
  S = Dir(Path, vbDirectory)
  
  Label1.Caption = Riqi
  Label2.Caption = Year
  Label3.Caption = Path
  Label4.Caption = S
  
End Sub

解决方案 »

  1.   

    一个简单的ftp上传
      

  2.   

    在VB中实现文件上传   
          
          
        
        
      Visual   Basic   作为一个集应用程序开发、测试、查错功能于一   体的集成式开发环境,越来越受到程序员的青睐。笔者在开发某数据   库维护系统的过程中,选择了VB5.0作为开发平台,Unix作为服务器端   操作系统,Informix   作为服务器数据库。     
        问题的出现     
        在开发该维护系统的过程中,注意到Informix   数据库的字段   类型CLOB   填入数据时需要函数FILETOCLOB("FILENAME","SERVER")   ,   其中的"FILENAME"需要指出文件路径和文件名称。然而,在维护过程   中此文件是在客户端执行的,这样就要求即时将文件传输到服务器端   。     
        解决办法     
        1.   FTP传输工具     
        我们首先使用FTP传输工具,用VB5.0中SHELL   命令调用DOS批处理   文件来实现传输的需要。     
        Shell调用格式:     
        Shell(pathname[,windowstyle])     
        例子:Shell("c:\windows\upload.bat")     
        批处理文件upload.bat   的内容:     
        c:\windows\ftp   hostname     
        username     
        password     
        send   c:\zrh\upload.txt   upload.txt     
        bye     
        该命令实现了文件"upload.txt"的传输要求。在使用完毕之后,   再调用命令把该文件删除。     
        例子:Shell("c:\windows\del_up.bat")     
        批处理文件del_up.bat   的内容:     
        c:\windows\ftp   hostname     
        username     
        password     
        dele   upload.txt     
        bye     
        这样,文件"upload.txt"被删除。     
        但是,另一个问题出现了。由于Shell   函数的运行机制是与其它   程序同步执行,也就是说,当调用Shell   函数的子程序还没有执行完毕   之前,Shell函数后面的语句已经执行。在大批量添加数据的过程中,   就会出现某个记录的文件还没有传到,而下一个插入语句(I   nsert)已   经开始调用。这样,ODBC调用就会出现错误。     
        2.   INET   控件     
        Internet   Transfer控件提供了Internet   上最常使用的两种协议   :HTTP   和FTP。使用HTTP   协议可以连接到WWW服务器上来下载文件;使   用FTP协议则可以登录到FTP   服务器。一般的FTP命令,例如CD、GET   都可以通过Execute   方法实现。     
        下面是一个设置INET控件属性的例子。     
        inet1.URL=ftp://username:password@hostname/document     
        inet1.Protocol=2-icFTP     
        inet1.RemoteHost=hostname     
        inet1.RemotePort=21     
        inet1.Username=username     
        inet1.   Password=password     
        执行文件传输:     
        Inet1.Execute   "ftp://username:password@hostname",   _     
        "PUT"   &local_filename   &   "   UPLOAD1.TXT"     
        right1   =   Inet1.StillExecuting     
        Do   While   right1     
            right1   =   Inet1.StillExecuting     
            DoEvents     
        Loop     
        这样便实现了文件的上载。     
        *SINET   控件的优点     
        INET控件与Shell()函数的不同之处在于INET控件通过调用语句     
        right1   =   Inet1.StillExecuting     
        Do   While   right1     
            right1   =   Inet1.StillExecuting     
            DoEvents     
        Loop来控制语句执行的顺序。在文件传输工作未完成之前,程序   不会执行其它语句,自然也就不会出现调用Shell   函数所出现的问题   。变量right1用来测试inet1   的执行状态,如果进程中仍在进行文件   传输的工作,则调用过程DoEvents给系统空闲时间来做文件传输工作,   这样便成功地执行了文件上载的功能。该文件使用完毕之后将被删除   。     
        Inet1.Execute   "ftp://informix:informix@rd",   _     
        "DELETE   UPLOAD1.TXT"     
        right1   =   Inet1.StillExecuting     
        Do   While   right1     
        right1   =   Inet1.StillExecuting     
        DoEvents     
        Loop     
        将上载的文件删除是为了避免占用服务器端磁盘空间。     
        *S利用StateChanged事件提示信息     
        服务器在执行inet1.execute   的同时也激活了Inet1_StateChang   ed事件,进程可以根据捕获到的状态进行动作。     
        object_StateChanged(ByVal   State   As   Integer)     
        State:整数类型Integer     
        下面是状态的说明。     
        常数值   描述icNone     
        0        未报告状态icHostResolvingHost     
        1        控件正在寻找指定主机的IP地址icHostResolved     
        2        控件已成功找到指定主机的IP地址icConnecting     
        3        控件正在与指定主机进行连接icConnected     
        4        控件已成功与指定主机连接icRequesting     
        5        控件正在向主机发出请求icRequestSent     
        6        控件已成功向主机发出请求icReceivingResponse     
        7        控件正在从主机接收反馈信息icResponseReceived     
        8        控件已成功从主机接受反馈信息icDisconnecting     
        9        控件正在与主机断开icDisconnected     
        10     控件已与主机断开icError     
        11     在与主机通信的过程中发生了错误icResponseComp   leted     
        12     请求结束且数据已经接收到     
        下面是一个例子。     
        Private   Sub   Inet1_StateChanged(ByVal   State   As   Integer)     
        '   Retrieve   server   response   using   the   GetChunk     
        '   method   when   State   =   12.   This   example   assumes   the     
        '   data   is   text.     
        Select   Case   State     
        '   ...   Other   cases   not   shown.     
        Case   icResponseReceived   '   12     
        Dim   vtData   As   Variant   '   Data   variable.     
        Dim   strData   As   String:   strData   =   ""     
        Dim   bDone   As   Boolean:   bDone   =   False     
        '   Get   first   chunk.     
        vtData   =   Inet1.GetChunk(1024,   icString)     
        Do   While   Not   bDone     
        strData   =   Data   &   vtData     
        '   Get   next   chunk.     
        vtData   =   Inet1.GetChunk(1024,   icString)     
        If   Len(vtData)   =   0   Then     
            bDone   =   True     
        End   If     
        Loop     
        txtData.Text   =   strData     
        End   Select     
        End   Sub     
      

  3.   

    你给的解决方法:
    1,没有获取文件夹名和登陆对应FTP文件夹的方法
    2,没有根据日期选择上传文件的方法后面粘贴的页面,我也搜索到了。主要上面两个问题没法解决。
      

  4.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim sLogName As String
        Dim s As String
        
        s = Dir("c:\log\file\log*", vbDirectory)
        If LenB(s) = 0 Then
            MsgBox "没有 c:\log\file\logXXXXXX 格式的目录。", vbExclamation
            Exit Sub
        End If
        
        sLogName = Mid$(s, 4)
        
        打开Inet1...
        Inet1.Execute , "CD " & sLogName
        
        s = Dir("C:\log\file\log" & sLogName & "\log*.txt")
        While LenB(s) <> 0
            Inet1.Execute , "PUT C:\log\file\log" & sLogName & "\" & s & " " & s
            While Inet1.StillExecuting
                DoEvents
            Wend
            
            s = Dir()
        Wend
    End Sub
      

  5.   

    前年我写了一个FTP断点上传下传的程序。。很好用。。需要可联系我
      

  6.   

    非常感谢Tiger_Zhao
    不过我在运行execute时总出现"仍在执行上一请求"Private Sub Form_Load()
      Dim Date01 As String, Year01 As String, Path01 As String, S As String  Date01 = Format(Date, "mmdd")
      Date01 = "log" & Date01 - 1 & ".txt"
      Year01 = Format(Date, "yyyy")
      Path01 = "C:\log\file\"
        Do
          S = Dir$(Path01 & "\log*", vbDirectory)
          If (Len(S) = 11) Then
              If (IsNumeric(Mid$(S, 4))) Then Exit Do
          End If
          S = Dir$()
        Loop While (S > "")
      S = Right(S, 4)
      Path01 = Path01 & "log1212" & S & "\" & Year(Date) & "\" & Date01  Inet1.RemoteHost = "192.168.1.1"
      Inet1.RemotePort = 2020
      Inet1.RequestTimeout = 30
      Inet1.Execute , "cd " & S
      While LenB(Path01) <> 0
          Inet1.Execute , "put " & Path01 & " " & Date01
          While Inet1.StillExecuting
              DoEvents
          Wend
      WendEnd Sub
      

  7.   

        打开Inet1...
        Inet1.Execute , "CD " & sLogName
        While Inet1.StillExecuting
            DoEvents
        Wend
        
        s = Dir("C:\log\file\log" & sLogName & "\log*.txt")
        While LenB(s) <> 0
            Inet1.Execute , "PUT C:\log\file\log" & sLogName & "\" & s & " " & s
            While Inet1.StillExecuting
                DoEvents
            Wend
            
            s = Dir()
        Wend
      

  8.   

    1,sLogName是什么?前面没出现过这个变量。
    2,还是运行就不动了……我把后面上传部分去掉,发现进入S目录这步就长时间停顿了。
    相当郁闷!!!
      

  9.   

    好像 ls 出错会马上返回,先用它测试一下是否可连接
        Inet1.Execute , "ls"
        While Inet1.StillExecuting
            DoEvents
        Wend
        If Inet1.ResponseCode <> 0 Then
            MsgBox Inet1.ResponseInfo
        End If
        
        Inet1.Execute , "cd " & s
        ...
      

  10.   


    [email protected]   大虾,偶也想学习学习。3Q
      

  11.   

    Unix 的返回消息不熟,可能服务器阻止了该命令。
    你要先用命令行的 ftp 操作保证可访问的才行。
      

  12.   

    IE访问没问题,命令行下用FTP访问就超时……
      

  13.   

    偶要崩溃了,现在把FTP服务器设置完成,命令行下也能正常登陆
    可是responseinfo还是反馈“没有更多文件”
      

  14.   

    用 dir 命令试试。
    unix 的别名设置可以让命令的表现千差万别,需要服务器管理员帮助分析。
      

  15.   

    dir没有问题
    226 ransfer complete
    1125 bytes received in 0.01seconds 75.00kbytes/sec服务器管理员就是偶自己