Foxtable(狐表)用户栏目专家坐堂 → 如何读取文件夹内所有文件路径(含子文件夹里面的),并写入表里面?


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

主题:如何读取文件夹内所有文件路径(含子文件夹里面的),并写入表里面?

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


加好友 发短信
等级:一尾狐 帖子:454 积分:3241 威望:0 精华:0 注册:2019/11/3 22:21:00
如何读取文件夹内所有文件路径(含子文件夹里面的),并写入表里面?  发帖心情 Post By:2022/8/16 22:10:00 [只看该作者]

如何读取文件夹内所有文件路径(含子文件夹里面的),并写入表里面?
以前是编代码,逐个文件夹读取,但文件夹多了,代码就长的不得了,读起来也很慢。
有更好的办法吗?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/16 22:29:00 [只看该作者]

使用递归:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=121108&skin=0,看4楼
[此贴子已经被作者于2022/8/17 15:58:26编辑过]

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


加好友 发短信
等级:一尾狐 帖子:454 积分:3241 威望:0 精华:0 注册:2019/11/3 22:21:00
  发帖心情 Post By:2022/8/17 11:49:00 [只看该作者]

DataTables("表A").DeleteFor("[第一列] is null")'以系列号为空,清空所有行,准备新的加载
vars("pause") = False
Dim path = "d:\test"
If m_scopes.Count > 0 Then
    path = m_scopes.Pop()
End If
EnumerateFiles(path)
Dim r As Row
For Each w As String In EnumerateFiles(path)
       r = Tables("表A").addnew
    r("第一列") = w
Next

调用代码后如何把结果到“表A”里面,紫色部份不会写,请教下

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/17 12:05:00 [只看该作者]

参考这个用法

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

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


加好友 发短信
等级:一尾狐 帖子:454 积分:3241 威望:0 精华:0 注册:2019/11/3 22:21:00
  发帖心情 Post By:2022/8/17 14:34:00 [只看该作者]

已参考,关键就是结果如何写入表格里面?
Dim ls As New List(Of String)
Functions.Execute("递归", "d:\test", ls)
msgbox(String.join("|", ls.ToArray))

输出结果如何写入表格里面?
[此贴子已经被作者于2022/8/17 14:36:43编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/17 14:59:00 [只看该作者]

For Each file As String In FileSys.GetFiles(path)
    ls.add(file)
Next
改为
For Each file As String In FileSys.GetFiles(path)
    dim r as row = tabels("表A").addnew
r("第一列") = file
Next
[此贴子已经被作者于2022/8/17 16:27:37编辑过]

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


加好友 发短信
等级:一尾狐 帖子:454 积分:3241 威望:0 精华:0 注册:2019/11/3 22:21:00
  发帖心情 Post By:2022/8/17 15:36:00 [只看该作者]

DataTables("表A").DeleteFor("[第二列] is null")'以系列号为空,清空所有行,准备新的加载
vars("pause") = False
Dim path = "d:\test"
If m_scopes.Count > 0 Then
    path = m_scopes.Pop()
End If
EnumerateFiles(path)
For Each file As String In FileSys.GetFiles(path) 
    r = Tables("表A").addnew
    r("第一列") = file
Next

紫色部分 FileSys.GetFiles(path) 能否改成 EnumerateFiles(path)     ?
不然只能列出指定目录下的文件,子目录下的文件列不出来

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/17 15:58:00 [只看该作者]

使用递归,请认真看4楼实例。


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


加好友 发短信
等级:一尾狐 帖子:454 积分:3241 威望:0 精华:0 注册:2019/11/3 22:21:00
  发帖心情 Post By:2022/8/17 16:05:00 [只看该作者]

我就是直接用你发的实例来测试的,就是想把输出结果写入“表A” 第一列而已

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/17 16:29:00 [只看该作者]

按5楼的方法改就行了。这个实例和EnumerateFiles没有半毛钱的关系

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



 回到顶部
总数 12 1 2 下一页