Foxtable(狐表)用户栏目专家坐堂 → 如何得到目录下所有文件的个数?(目录下含子目录,子目录中又子目录)谢谢!!


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

主题:如何得到目录下所有文件的个数?(目录下含子目录,子目录中又子目录)谢谢!!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/19 17:00:00 [显示全部帖子]

For Each foundFile As String In Filesys.GetFiles("c:\data\", FileIO.SearchOption.SearchAllSubDirectories)
     Output.Show(foundFile)
Next

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/20 0:50:00 [显示全部帖子]

个人建议你不要心太大,否则容易失控,做多错多。

 

将下面的代码复制到全局代码中:

 

Public Sub GetFtpFiles(fp As FtpClient, dr As String, Lst As List(of String))
    For Each f As String In fp.GetFileList(dr)
        lst.Add(f)
    Next
    For Each sdr As String in fp.GetDirectoryList(dr)
        GetFtpFiles(fp,sdr,lst)
    Next
End Sub

 

以后就可以在Foxtable中:

 

Dim lst As New List(of String)

For Each s As String In GetFtpFiles(ftp,"路径",Lst)

   Output.Show(s)

Next

 

定义函数GetFtpFiles的这段代码使用了递归,没有经过测试,请自行调试。

[此贴子已经被作者于2010-5-20 0:52:29编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/20 9:48:00 [显示全部帖子]

那就算了吧

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/20 10:40:00 [显示全部帖子]

这是经过调试通过的。

 

全局代码:

 

Public Sub GetFtpFiles(fp As FtpClient, dr As String, Lst As List(of String))
    For Each f As String In fp.GetFileList(dr)
        lst.Add(dr & "/" & f)
    Next
    For Each sdr As String in fp.GetDirectoryList(dr)
        GetFtpFiles(fp,dr & "/" & sdr,lst)
    Next
End Sub

 

使用实例:

 

Dim ftp1 As new ftpclient
ftp1.host="110.100.100.100"
ftp1.Account = "username"
ftp1.password = "password"
Dim lst As New List(of String)
GetFtpFiles(ftp1,"/目录",Lst)
For Each s As String In lst
   Output.Show(s)
Next


 回到顶部