用VB中的控件inet,做一个上传和下载文件在FTP服务器上,其中执行上传代码是:inetFTP.Execute "", "put""D:\test\test1.txt /www/vbtest/test1.txt"这样写成功上传(本地路径:D:\test\ 服务器路径:/www/vbtest/).现在路径是绝对路径.
可是要改成给程序在同一路径下.加入app.path 不知如何实现?试了很多次都上传不成功.

解决方案 »

  1.   

    inetFTP.Execute "", "put"""&app.path&"\test1.txt /www/vbtest/test1.txt"
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    inetFTP.Execute "", "put" & app.path & "/www/vbtest/test1.txt"
      

  3.   

    还是不成功.现将原码贴出来.还是谢谢楼上.
    Dim isbusy  As Boolean
    inetFTP.URL = "ftp://xxxxx"
        inetFTP.Protocol = icFTP
        inetFTP.RemotePort = 21
        inetFTP.UserName = "xxxxxx"
        inetFTP.Password = "******"
        inetFTP.Execute "", "put" & App.Path & "/www/vbtest/test1.txt" '此处
        
        isbusy = inetFTP.StillExecuting '等待请求,换上楼上的方法.就一直在这儿循环.
        Do While isbusy
         isbusy = inetFTP.StillExecuting
         DoEvents
        Loop
        MsgBox "此文件成功上传", vbInformation, "系统信息"
        inetFTP.Execute , "close"
    有谁遇到这个情况没?谢谢大家了~~!
      

  4.   

    inetFTP.Execute "", "put" & app.path & "\test1.txt /www/vbtest/test1.txt" 一楼的可能有笔误吧
      

  5.   

    这种方法.我也测试过.编译是没有问题的.上传文件后.服务器上的文件没有变.(注:本地文件大小:8024KB.服务器原来文件大小是:9277KB)上传后服务器还是9277KB.目前上传中用inetFTP.Execute "", "put""D:\test\test1.txt /www/vbtest/test1.txt"'绝对路径上传成功.
    郁闷之中....!
      

  6.   

    LZ,单步调试一下,inetFTP.Execute "", "put" & app.path & "\test1.txt /www/vbtest/test1.txt"分解一下debug.print app.path            '查看一下是否是你要的路径
    debug.print app.path & "\text1.txt"    '查看一下完整路径是否正确如果上面都没有问题,那问题就出在了inetFTP这个对象上面
    打开这个对象,检查execute这个方法是如何执行的!
      

  7.   

    通过以下两步测试.
    MsgBox App.Path'
    MsgBox App.Path & "\test1.txt"'显示的均为正确的文件路径.
    inetFTP.Execute "", "put" & app.path & "\test1.txt /www/vbtest/test1.txt"'执行此句仍然上传不成功
    inetFTP这个对象的execute这个方法是如何测试它的执行情况!在程序中我当前只用了inetFTP_StateChanged事件.
    其代码如下: 
    Private Sub inetFTP_StateChanged(ByVal State As Integer)
    Select Case State
      Case icConnecting
                Text1.Text = "正在与主机连接"
            Case icConnected
                Text1.Text = "已与主机连接成功"
            Case icDisconnecting
                Text1.Text = "程序也和服务器断开连接"
            Case icDisconnected
                Text1.Text = "程序也和服务器断开连接"
            Case icRequestSent
                Text1.Text = "正在传送文件...."
            Case icRequesting
                Text1.Text = "请求"
            Case icReceivingResponse
                Text1.Text = "接收响应"
            Case icRequestSent
                Text1.Text = "正在传送文件....."
            Case icResponseReceived
                Text1.Text = "收到答复"
            Case icResolvingHost
                Text1.Text = "解析主机"
            Case icHostResolved
                Text1.Text = "主机解析"
                
        End Select
      

  8.   

    问题解决了,Code:
    inetFTP.URL = "ftp://xxxxxx"
    inetFTP.Protocol = icFTP
    inetFTP.RemoteHost = "xxxxx"
    inetFTP.RemotePort = 21
    inetFTP.UserName = "xxxxxxxx"
    inetFTP.Password = "******"
    inetFTP.Execute inetFTP.URL, "put " & App.Path & "\test1.txt /www/vbtest/test1.txt"
    '注:就是在PUT后面要加上一个空格.谢谢各位.马上加分