以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现ftp远程文件不用每次都重新下载 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118094) |
-- 作者:happyft -- 发布时间:2018/4/25 8:42:00 -- 如何实现ftp远程文件不用每次都重新下载 此主题相关图片如下: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服务器上此文件更新了才重新下载 谢谢!
|
-- 作者:有点甜 -- 发布时间:2018/4/25 8:57:00 -- 对比文件的大小、时间等属性
http://www.foxtable.com/webhelp/scr/1410.htm
http://www.foxtable.com/webhelp/scr/2707.htm
|
-- 作者:HappyFt -- 发布时间: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的文件路径要如何写呢?
|
-- 作者:有点甜 -- 发布时间:2018/4/25 11:05:00 -- 要用ftpclient的方法,如
GetFileSize 示例 Dim ftp1 As New FtpClient
GetFileTime Dim ftp1 As New FtpClient |