以文本方式查看主题

-  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=117580)

--  作者:happyft
--  发布时间:2018/4/15 11:53:00
--  ftp默认下载目录的问题
想用ftp来存放一些文件,内外网都可以使用,下面是点击按钮打开ftp上文件的代码
\'连接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端口号

If TryConnectHost(ftp_Host) Then  \'如果ftp的网络是通的检测是否有升级包
    If ftp.Connect Then \'如果FTP没有连接,用备用域名连接
        \'---先下载ftp服务器上的日期文件----------
        If ftp.Download("\\使用指南\\" & e.Button.Text & ".Exe", ProjectPath & "RemoteFiles\\" & e.Button.Text & ".Exe", True) Then \'如果下载文件成功
            \'打开本地下载的文件
            Dim Proc As New Process \'定义一个新的Process
            Proc.File = ProjectPath & "RemoteFiles\\" & e.Button.Text & ".Exe" \'指定要打开的文件
            Proc.Start()
        Else
            MessageBox.Show("ftp下载文件失败,请稍后再试!")
        End If
        ftp.Close  \'关闭本次连接
    Else
        MessageBox.Show("无法连接ftp服务器,请稍后再试!")
    End If
End If 
问题:
1 是否项目安装后如果有用ftp下载过文件,在安装路径下面就一定会自动生成RemoteFiles这个目录来存入ftp下载的文件,不用人为指定ftp下载目录?
2 每次升级后因为会覆盖安装目录project下的文件,原来已下载的文件是否会被清除,即每次要打开时都重新下载

谢谢!


--  作者:有点甜
--  发布时间:2018/4/15 12:22:00
--  

 

[此贴子已经被作者于2018/4/15 12:21:41编辑过]

--  作者:有点甜
--  发布时间:2018/4/15 12:23:00
--  

1、RemoteFiles是foxtable自动生成的。但是,你写代码的时候,肯定要人为指定目录才行。

 

没看懂你要表达什么,想做什么。如果你像RemoteFiles是一致存在的,你可以在制作安装包的时候,就新建一个。

 

2、不会,同名的文件才会覆盖,不同名的是新增。


--  作者:HappyFt
--  发布时间:2018/4/15 13:07:00
--  
就是在ftp的使用指南文件夹下保存了所有录制的.exe的操作视频,每个用户使用过程中都可以点击下载到本地打开观看,我看每个项目下都有个
RemoteFiles文件夹,因为我没有建立过这个文件夹,如果默认就有我的ftp下载代码中就固定用这个文件夹(怕有的电脑上如果没有这个文件夹就会出错)

如果类似下面这样自建目录
   \'----新增目录----
        Dim Path As String  = "D:\\UpdateTemporary"
        If FileSys.DirectoryExists(Path) = False Then
            FileSys.CreateDirectory(Path)
        End If

有遇到这种情况,有的用户的电脑操作系统安装后根本没有D盘或者有人的笔记本电脑只有一个C盘这样运行也会出错,所以才想如果ft会自动创建我就不用管这些问题了


--  作者:有点甜
--  发布时间:2018/4/15 15:51:00
--  
RemoteFiles 在项目文件夹里面,如果确实担心,你发布生成程序之后,再多新建一个叫做 RemoteFiles 的文件夹,不就行了。
--  作者:HappyFt
--  发布时间:2018/4/15 20:41:00
--  
如查窗口表中有一个多文件列,同时窗口上有一个文件管理器绑定到这列,都是放在远程ftp上,如下代码

DataTables("通知_主表").DataCols("附件").ExtendType = ExtendTypeEnum.Files

\'绑定控件
Dim flm As WinForm.FileManager = e.Form.Controls("FileManager1")
flm.BindingField = e.Form.name & "_主表.附件"
flm.CommandVisible = False \'不显示底端命令按钮

Dim ftp As New FtpClient
DataTables(e.form.name & "_主表").DataCols("附件").Remote = True
DataTables(e.form.name & "_主表").DataCols("附件").FTPClient.Host = ftp_Host
DataTables(e.form.name & "_主表").DataCols("附件").FTPClient.Account = ftp_User
DataTables(e.form.name & "_主表").DataCols("附件").FTPClient.password = ftp_Pwd
DataTables(e.form.name & "_主表").DataCols("附件").FTPClient.port = ftp_Port  \'ftp端口不是21时必须指定
DataTables(e.form.name & "_主表").DataCols("附件").FTPClient.UTF8 = True \'避免中文乱码
DataTables(e.form.name & "_主表").DataCols("附件").FTPClient.RootDir = "/附件"

ftp.Host = ftp_Host  \'ftp服务器地址
ftp.Account = ftp_User  \'ftp登录帐号
ftp.Password = ftp_Pwd   \'ftp登录密码
ftp.Port = ftp_Port  \'ftp端口号
ftp.UTF8 = True  \'避免乱码
flm.FTPclient = ftp

表中列与文件管理器控件都要分别设置ftpClient才可以,为什么设置了列的ftpClient,而且也绑定了,
但不要红色的代码的话双击打开文件管理器控件中的文件就会出错

谢谢!



--  作者:有点甜
--  发布时间:2018/4/15 21:10:00
--  

直接设置ftpclient即可,如

 

flm.FTPclient = DataTables(e.form.name & "_主表").DataCols("附件").FTPClient