以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]FolderBrowserDialog上传目录  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78911)

--  作者:huhu
--  发布时间:2015/12/20 16:40:00
--  [求助]FolderBrowserDialog上传目录
FolderBrowserDialog 好像只能选择一个目录,多个目录好像不行。
Upload也只能上传文件,不能上传目录。
有办法可以选择目录上传吗?

--  作者:大红袍
--  发布时间:2015/12/20 16:45:00
--  

上传目录的方法

 

ftp.UploadDirectory(ProjectPath & "Images", False)


--  作者:huhu
--  发布时间: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

--  作者:大红袍
--  发布时间:2015/12/20 17:05:00
--  

ftp.UploadDirectory("文件夹路径啊", False)


--  作者:huhu
--  发布时间: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所有的文件)

--  作者:大红袍
--  发布时间:2015/12/20 17:29:00
--  
叫你上传目录A啊
--  作者:huhu
--  发布时间:2015/12/20 17:31:00
--  
我知道啊。我不是还需要对A里面所有的文件进行重命名么。
--  作者:大红袍
--  发布时间:2015/12/20 17:40:00
--  

 遍历文件参考

 

载信息  [文件大小:292.0 KB  下载次数:84]
图片点击可在新窗口打开查看点击浏览该文件:文件递归.table


--  作者:huhu
--  发布时间: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下面的所有的文件。并重命名。
搞不定。

--  作者:大红袍
--  发布时间:2015/12/20 18:29:00
--  
看8楼啊。