以文本方式查看主题

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

--  作者:wh420
--  发布时间:2021/4/6 17:14:00
--  FTP如何根据某字段内容建立上传目录
FTP如何根据当前行的“项目编号”字段内容来自动建立上传目录?
如:当前行项目编号为:"XM001",则自动建立XM001目录并把文件上传到该目录下

Dim ftp1 As New FtpClient
ftp1.Host="192.168.1.7"
ftp1.Account = "adminftp"
ftp1.Password = "1234"
Dim flm As WinForm.FileManager = e.Form.Controls("FileManager1")
Dim dlg As new OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    e.Cancel = True
    For Each fl As String In dlg.FileNames

        Dim info As new FileInfo(fl)
        ftp1.Upload(fl,Info.name)

    flm.AddFile(Info.name)
    Next
End If

--  作者:有点蓝
--  发布时间:2021/4/6 17:24:00
--  
Dim ftp1 As New FtpClient
ftp1.Host="192.168.1.7"
ftp1.Account = "adminftp"
ftp1.Password = "1234"
dim bh as string = "\\XM001"
If ftp1.DirExists(bh) = false Then
  
If ftp1.MakeDir(bh) = false Then
    
Messagebox.Show("创建目录失败!")
return
End If

End If
Dim flm As WinForm.FileManager = e.Form.Controls("FileManager1")
Dim dlg As new OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    e.Cancel = True
    For Each fl As String In dlg.FileNames
dim name as string = bh & "\\" & FileSys.GetName(fl)
        ftp1.Upload(fl,name)
    flm.AddFile(name)
    Next
End If

--  作者:wh420
--  发布时间:2021/4/6 20:46:00
--  

谢谢老师,问题解决。
2、下列代码可以把表A中当前行文件名字段(多值字段)的所有文件名读出来到LISTVIEW控件中,那如何读出文件名对应的文件大小并填充到LISTVIEW控件中呢?

For Each s As String In Tables("表A").Current.DataRow.Lines("FileName")
    Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    For Each cl As String In cls \'逐列取值
        Select Case cl

            Case "FileName"
                r(cl) = s
        End Select
    Next
Next


图片点击可在新窗口打开查看此主题相关图片如下:2021-04-06_204426.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2021-04-06_204513.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2021/4/6 20:58:00
--  
FileInfo:http://www.foxtable.com/webhelp/topics/2707.htm
--  作者:wh420
--  发布时间:2021/4/6 21:28:00
--  
INFO我知道,但在逻辑上不太会使用。麻烦老师在下面的代码中指导一下:

For Each s As String In Tables("表A").Current.DataRow.Lines("FileName")
    Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    For Each cl As String In cls \'逐列取值
        Select Case cl

            Case "FileName"
                r(cl) = s
        End Select
    Next
Next

--  作者:有点蓝
--  发布时间:2021/4/6 21:52:00
--  
       Select Case cl

            Case "FileName"
                r(cl) = s
            Case "Filesize"
Dim info As new FileInfo(s)
                r(cl) = info.Length
        End Select

--  作者:wh420
--  发布时间:2021/4/6 22:26:00
--  
 r(cl) = info.Length 这句出错,说是文件名不存在,换成INFO.NAME是可以取到文件名的。换成CREATETIME则所有的时间都一样,怎么回事?
--  作者:wh420
--  发布时间:2021/4/6 22:33:00
--  
我需要获取的是远程文件的信息


--  作者:有点蓝
--  发布时间:2021/4/6 22:45:00
--  
3楼截图的文件名肯定都是本地路径。如果是ftp参考:http://www.foxtable.com/webhelp/topics/1410.htm
--  作者:wh420
--  发布时间:2021/4/7 11:38:00
--  
问题解决。
再请教:使用listview控件来显示多值字段的文件名,如何双击某条记录能实现打开FTP文件的效果?

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210407113640.png
图片点击可在新窗口打开查看