Foxtable(狐表)用户栏目专家坐堂 → [求助]关于多文件,如何自动获取指定目录的文件


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

主题:[求助]关于多文件,如何自动获取指定目录的文件

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


加好友 发短信
等级:婴狐 帖子:31 积分:362 威望:0 精华:0 注册:2011/10/4 21:59:00
[求助]关于多文件,如何自动获取指定目录的文件  发帖心情 Post By:2013/5/29 14:18:00 [只看该作者]

求助,关于多文件
有款号和文件两列,想按款号去收集整理文件。
本地电脑D盘已经按一个款建一个文件夹。

现在想能否在款号列输入款号后,文件列自己获取到相对应的款号的文件夹,并增加在文件列中。
因为有很多个款,也就有很多个文件夹。不想一个一个去点文件列,一款一款的去增加多个文件,
有没有好的方法,请指点,谢谢!

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/5/29 14:34:00 [只看该作者]

类似:

 

For Each dir As String In FileSys.GetDirectories("C:\foxtable")
    For Each fl As String In filesys.GetFiles(dir)
        Dim dr As DataRow = DataTables("表A").AddNew
        dr("款号") = dir
        dr("文件") = filesys.GetName(dir) & "\" & filesys.GetName(fl)
    Next
Next

 

在命令窗口执行,具体具体自己调整


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


加好友 发短信
等级:婴狐 帖子:31 积分:362 威望:0 精华:0 注册:2011/10/4 21:59:00
  发帖心情 Post By:2013/5/29 16:04:00 [只看该作者]

多谢狐爸抽空回指点,按以下代码,执行后是每个文件生成一行,如何将同一个文件夹中的多个文件,都放在同一行文件列中呢,谢谢

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/5/29 16:25:00 [只看该作者]

For Each dir As String In FileSys.GetDirectories("C:\foxtable")
    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

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


加好友 发短信
等级:婴狐 帖子:31 积分:362 威望:0 精华:0 注册:2011/10/4 21:59:00
  发帖心情 Post By:2013/5/29 16:31:00 [只看该作者]

狐爸,谢谢您百忙之中解答!

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


加好友 发短信
等级:婴狐 帖子:31 积分:362 威望:0 精华:0 注册:2011/10/4 21:59:00
  发帖心情 Post By:2013/5/29 16:47:00 [只看该作者]

狐爸,打开文件时,找不到文件不能打开,我按以下加了路径才可以打开。
v =  v & vbcrlf & dir & "\" &  filesys.GetName(fl) 
        Else
            v = dir & "\" & filesys.GetName(fl) 

但会显行完整的路径名,求更好的方法。
[此贴子已经被作者于2013-5-29 16:49:00编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/5/29 16:53:00 [只看该作者]

如果你不是将文件保存在默认的位置,就得在列属性中指定文件存储位置:

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


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


加好友 发短信
等级:婴狐 帖子:31 积分:362 威望:0 精华:0 注册:2011/10/4 21:59:00
  发帖心情 Post By:2013/5/29 17:21:00 [只看该作者]

明白了,再次感谢狐爸全程解答,谢谢!

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


加好友 发短信
等级:二尾狐 帖子:501 积分:4167 威望:0 精华:0 注册:2013/1/18 13:34:00
  发帖心情 Post By:2013/6/11 9:34:00 [只看该作者]

也可用lines属性解决,见帮助文件中的“单元格多行内容的处理”

 

Dim lst As New List(of String)
For Each
fl As String In FileSys.GetFiles("c:\data")
lst.Add(fl)
Next

Tables(
"A").Current.DataRow.lines("文件") = lst


 回到顶部