以文本方式查看主题

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

--  作者:thetonys
--  发布时间:2013/5/29 14:18:00
--  [求助]关于多文件,如何自动获取指定目录的文件
求助,关于多文件
有款号和文件两列,想按款号去收集整理文件。
本地电脑D盘已经按一个款建一个文件夹。

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

--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2013/5/29 16:04:00
--  
多谢狐爸抽空回指点,按以下代码,执行后是每个文件生成一行,如何将同一个文件夹中的多个文件,都放在同一行文件列中呢,谢谢
--  作者:狐狸爸爸
--  发布时间: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
--  发布时间:2013/5/29 16:31:00
--  
狐爸,谢谢您百忙之中解答!
--  作者:thetonys
--  发布时间: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编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/5/29 16:53:00
--  

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

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


--  作者:thetonys
--  发布时间:2013/5/29 17:21:00
--  
明白了,再次感谢狐爸全程解答,谢谢!
--  作者:ztmdnzc
--  发布时间: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