Foxtable(狐表)用户栏目专家坐堂 → [求助]FolderBrowserDialog上传目录


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

主题:[求助]FolderBrowserDialog上传目录

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]FolderBrowserDialog上传目录  发帖心情 Post By:2015/12/20 16:40:00 [显示全部帖子]

FolderBrowserDialog 好像只能选择一个目录,多个目录好像不行。
Upload也只能上传文件,不能上传目录。
有办法可以选择目录上传吗?

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/20 17:04:00 [显示全部帖子]


下面是我原来上传文件的代码。现在想改为选择了一个A目录上传,A目录包括2个子目录B和C,B和C各有文件。其他的不变。
怎么改?
Dim bh As String = Tables("临时版本跟踪表").Current("临时版本编号")
Dim lsbbbh As String = Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"

Dim dlg As new OpenFileDialog
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    Dim s As String
    s = "你选择了" & dlg.FileNames.Length & "个文件, 分别是:"
    For Each f1 As String In dlg.FileNames
        s = s & vbcrlf & f1
    Next
    MessageBox.Show(s,"你选择的文件数量及其路径如下:")
    Dim ftp As new FTPClient
    ftp.Host = "124.74.246.246"
    ftp.Account = "tester"
    ftp.Password = "tester"
    e.Form.text = lsbbbh & "*~*~*" & "所选文件上传中...."
    
    Dim ss As String
    Dim fname As String
    Dim Values As New List(Of String)
    For Each f2 As String In dlg.FileNames
        Dim f3 As String = FileSys.GetName(f2) '取出f2的文件名
        If f3.EndsWith("_vxWorks") Then
            Dim idx As Integer = f3.LastIndexOf("_vxWorks")
            fname = f3.SubString(0, idx-1) & "_" & bh & "_vxWorks"
        Else
            Dim idx As Integer = f3.LastIndexOf(".")
            If idx > -1 Then
                fname = f3.SubString(0, idx) & "_" & bh & f3.SubString(idx)
            Else
                fname = f3 & "_" & bh
            End If
        End If
        If (ftp.Upload(f2,Vars("zhygwjj") & "\" & fname))= True Then  '判断是否上传成功
            values.add(f2) '如果上传成功,那么就把这个文件添加到集合values里面
            ss = ss & vbcrlf & fname '分行显示重命名后的fname的文件名
        End If
    Next
    Functions.Execute("listview")
    e.Form.text = lsbbbh & "*~*~*" & "版本目录文件list"
    MessageBox.Show(ss,"恭喜你上传成功" & values.count  & "个文件!,重命名后的文件名分别为:")
    ftp.Close
End If

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/20 17:26:00 [显示全部帖子]

Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    MessageBox.Show("你选择的目录是:" & dlg.SelectedPath,"提示")
    Dim s As String
    s = "你选择了" & dlg.getdirlist.count & "个文件, 分别是:"
    For Each f1 As String In dlg.getdirlists
        s = s & vbcrlf & f1
    Next
End If
目录A包括目录B和C,B和C各有文件.
如何取遍历A下面的所有文件(就是B和C所有的文件)

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/20 17:31:00 [显示全部帖子]

我知道啊。我不是还需要对A里面所有的文件进行重命名么。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/12/20 18:17:00 [显示全部帖子]

Dim dlg As New FolderBrowserDialog
dlg.ShowNewFolderButton  = False
If dlg.ShowDialog = DialogResult.Ok Then
    MessageBox.Show("你选择的目录是:" & dlg.SelectedPath,"提示")
End If
Dim ftp As new FTPClient
ftp.Host = "124.74.246.246"
ftp.Account = "tester"
ftp.Password = "tester"
e.Form.text = lsbbbh & "*~*~*" & "所选文件上传中...."
ftp.UploadDirectory(dlg.Selectedpath,False)
搞不定这块东西。要遍历2个子目录B和C下面的所有的文件。并重命名。
搞不定。

 回到顶部