以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何同时自动获取指定目录的子目录名和文件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63153)

--  作者:半人马座比邻星
--  发布时间:2015/1/14 22:57:00
--  [求助]如何同时自动获取指定目录的子目录名和文件

For Each dir As String In FileSys.GetDirectories("f:\\Program Files (x86)\\360")
    Dim v As String = ""
    Dim dr As DataRow = DataTables("表A").AddNew
    dr("第一列") = filesys.GetName(dir)
    For Each fl As String In filesys.GetFiles(dir)
        If v > "" Then
            v =  v & vbcrlf & filesys.GetName(fl)
        Else
            v = filesys.GetName(fl)
        End If
    Next
    dr("第二列") = v
Next

 

 

这个代码可以列出360这个文件夹下的子目录名,但是无法同时列出360文件夹内的文件名。换句话说第一列中只有子目录名,无法列出文件名。

求助大神


--  作者:有点甜
--  发布时间:2015/1/14 23:00:00
--  

 列出文件夹以后,再循环列出文件

 

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

 


--  作者:半人马座比邻星
--  发布时间:2015/1/14 23:23:00
--  [求助]

是的,但是子目录内也有子目录和文件。我想达到一种就是在一行中列数显示的是文件夹路径,在行的末尾显示的是文件名

 

 

 表A /      第一列   | 第二列                  |第三列|第四列 |第五列 |第六列 | 第七列     |第八列

 第一行   本地磁盘F/Program Files (x86)/360/360Safe/360zip/config/zdefaultskin/zdefaultskin.exe


--  作者:freeants
--  发布时间:2015/1/14 23:32:00
--  
先递归,然后 一个个的 添加到表格中 
1)我定义了一个全局变量 Dim _directorylist as New List(of String)
2)自定义一个函数  搜索文件 
Dim path As String = args(0)

For Each file As String In FileSys.GetFiles(path)
    
        _Directorylist.add(file)
    
Next

For Each p As String In FileSys.GetDirectories(path)
    Functions.Execute("搜索文件", p)
Next
3) for each s as string in _Directorylist
        .....
    next

--  作者:有点甜
--  发布时间:2015/1/15 9:06:00
--  

 看4楼,用递归

 

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

[此贴子已经被作者于2015-1-15 9:06:00编辑过]

--  作者:半人马座比邻星
--  发布时间:2015/1/15 13:48:00
--  
谢谢