Foxtable(狐表)用户栏目专家坐堂 → 如何实现ftp远程文件不用每次都重新下载


  共有2195人关注过本帖树形打印复制链接

主题:如何实现ftp远程文件不用每次都重新下载

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
如何实现ftp远程文件不用每次都重新下载  发帖心情 Post By:2018/4/25 8:42:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:ftp远程文件.jpg
图片点击可在新窗口打开查看


帮助中远程文件是否自动更新这个功能写在代码中是用ftp的哪个属性或方法?

Dim ftp As New FtpClient
ftp.Host = ftp_Host  'ftp服务器地址
ftp.Account = ftp_User  'ftp登录帐号
ftp.Password = ftp_Pwd   'ftp登录密码
ftp.Port = ftp_Port  'ftp端口号
ftp.UTF8 = True  '避免中文乱码
ftp.Changedir("\使用指南")

Dim vn As String = args(0)  '传入的视频文件名称
If TryConnectHost(ftp_Host) Then 
    If ftp.Connect Then '如果FTP已连接
        If ftp.FileExists(vn & ".Exe") Then  '如果文件存在则下载
            If ftp.Download(vn & ".Exe", ProjectPath & "RemoteFiles\" & vn & ".Exe", True) Then '如果下载文件成功
                '打开本地下载的文件
                Dim Proc As New Process '定义一个新的Process
                Proc.File = ProjectPath & "RemoteFiles\" & vn & ".Exe" '指定要打开的文件
                Proc.Start()
            Else
                MessageBox.Show("ftp下载文件失败,请稍后再试!")
            End If
            ftp.Close  '关闭本次连接
       'Else
            'MessageBox.Show("ftp服务器上没有此文件!")
        End If
    Else
        MessageBox.Show("无法连接ftp服务器,请稍后再试!")
    End If
End If

上面的代码每次都会重新下载远程文件,如何才能实现本地RemoteFiles目录下有就不用下载,如果ftp服务器上此文件更新了才重新下载
谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2018/4/25 11:03:00 [显示全部帖子]

有个问题,本地文件的大小用
Dim ifo1 As new FileInfo(ProjectPath & "RemoteFiles\" & vn & ".Exe"  这个没问题

已用了
ftp.Changedir("\使用指南")
而且ftp上确实已经有那个文件

Dim ifo2 As new FileInfo(ftp.CurrentDir & "/" & vn & ".Exe")
Dim ifo2 As new FileInfo("\使用指南\" & vn & ".Exe")
Dim ifo2 As new FileInfo(vn & ".Exe")

上面这三种写法都提示出错,获取ftp上的文件信息时ftp的文件路径要如何写呢?

 回到顶部