Foxtable(狐表)用户栏目专家坐堂 → [求助]请教FTP目录递归代码优化


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

主题:[求助]请教FTP目录递归代码优化

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
[求助]请教FTP目录递归代码优化  发帖心情 Post By:2014/12/3 22:42:00 [只看该作者]

下面的代码递归FTP服务器上指定目录下的所有子目录并生成目录树,成功了,效率偏低(是先保存在数据表中,再由数据表生成目录树),请老师指点!想直接生成目录树。

Dim path As String = args(0)
Dim ftp1 As new ftpclient
ftp1.host= "192.168.1.246"              
ftp1.Port= "21"           
ftp1.Account = "hhe"             
ftp1.password = "12"        
For Each p As String In ftp1.GetDirList(path)
    Tables(“表A”).AddNew
    Dim s As String = ""
    s = path & "\" & p
    s = s.Replace(_TSG & "\","")
    Tables(“表A”).Current("分类") = s  

    Tables(“表A”).Current.Save
    Functions.Execute("FTP目录", path & "\" & p)
Next
Dim tv As WinForm.TreeView = Forms("FTP资源管理器").Controls("TreeView1")
tv.CreateTree(“表A”,"分类") 
tv.Nodes.Insert(“教育图书”,0)
tv.Nodes(“教育图书”).Ic

[此贴子已经被作者于2014-12-3 22:42:38编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/3 22:44:00 [只看该作者]

 只能是这样获取的,你生成目录树以后,可以把此目录树保存

 

http://www.foxtable.com/help/topics/2014.htm

 

http://www.foxtable.com/help/topics/1974.htm

 


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


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
  发帖心情 Post By:2014/12/3 23:00:00 [只看该作者]

请老师细看一下,想在红色地方就直接生成目录树,不想保存成数据表,再转弯生成目录树

For Each p As String In ftp1.GetDirList(path)
    Tables(“表A”).AddNew
    Dim s As String = ""
    s = path & "\" & p
    s = s.Replace(_TSG & "\","")   ’_TSG 是指定的FTP目录
    Tables(“表A”).Current("分类") = s  

    Tables(“表A”).Current.Save
    Functions.Execute("FTP目录", path & "\" & p)
Next

[此贴子已经被作者于2014-12-3 23:02:04编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/3 23:09:00 [只看该作者]

 这不是最简单的么?

 

Dim tv As WinForm.TreeView = Forms("FTP资源管理器").Controls("TreeView1")

For Each p As String In ftp1.GetDirList(path)
    Dim nd As Object = tv.Nodes.Add(p)   
    Functions.Execute("FTP目录", nd, path & "\" & p)
Next

 

 

---------

 

函数那里

 

Dim a1 As Object = args(0)

Dim a2 As Object = args(1)

For Each p As String In ftp1.GetDirList(a2)
    Dim nd As Object = a1.Nodes.Add(p)   
    Functions.Execute("FTP目录", nd, a2 & "\" & p)
Next

[此贴子已经被作者于2014-12-4 9:07:22编辑过]

 回到顶部