Foxtable(狐表)用户栏目专家坐堂 → 怎么获取所选择的目录,并读取该目录下的所有文件的内容


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

主题:怎么获取所选择的目录,并读取该目录下的所有文件的内容

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
怎么获取所选择的目录,并读取该目录下的所有文件的内容  发帖心情 Post By:2021/1/29 11:49:00 [只看该作者]

Dim dlg As New OpenFileDialog
dlg.Filter = "所有文件|*.*"
If dlg.ShowDialog =DialogResult.OK Then
    Dim fl As String = dlg.FileName   '获取所选择的文件名
    Dim fl1 As String =FileSys.GetParentPath(fl)  '根据文件名返回目录
    For Each File As String In FileSys.GetFiles(fl1)   '遍历目录下的所有文件
        Output.Show(File)
        Dim s As String = FileSys.ReadAllText(File, Encoding.Default) '读取文件内容
        output.Show(s)
    Next
End If

上述代码有没有更加简洁的办法  就是直接选择文件夹目录  即可  而不是先通过选择文件 然后返回目录  再去读该目录下的所有文件的内容

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


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/29 11:58:00 [只看该作者]

选择目录参考:http://www.foxtable.com/webhelp/topics/0359.htm

但是读该目录下的所有文件也必须使用FileSys.GetFiles

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)选择目录参考:http://www.foxtable....  发帖心情 Post By:2021/1/29 12:24:00 [只看该作者]

OK  有点蓝老师
Dim v As String
Dim s As new StringBuilder
Dim dz As String=   Format(Date.Now,"F")
FileSys.CreateDirectory("c:\dmbf\" & format(Date.now,"yyyy-MM-dd HHmmss") & "")
Dim fl As String="c:\dmbf\" & format(Date.now,"yyyy-MM-dd HHmmss") & ""
For Each r As Row In Tables("表A").Rows
    s.AppendLine(r("经历"))
    v = s.Tostring
    FileSys.WriteAllText( fl & "\" & r("姓名") & ".txt", v, False, Encoding.Default)
Next

当前可以实现代码创建姓名的文件,并且写入经历内容。
但是会形成如下:
假设表A中有两条记录:
  姓名          经历
1张三   大学期间获得奖励
2李四   高中期间获得一等奖

生成的文本为下:
张三  大学期间获得奖励
李四  大学期间获得奖励 高中期间获得一等奖  ‘红色部分是张三的 不应该写入’

怎么修改代码 不让经历部分进行重复叠加呢?

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


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/29 13:45:00 [只看该作者]

For Each r As Row In Tables("表A").Rows
s.clear
    s.AppendLine(r("经历"))
    v = s.Tostring
    FileSys.WriteAllText( fl & "\" & r("姓名") & ".txt", r("经历"), False, Encoding.Default)
Next

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)For Each r As Row In Tables("表A")...  发帖心情 Post By:2021/1/29 14:18:00 [只看该作者]

谢谢 老师  
经过学习  下列两个方法都可以实现

方法一:
For Each r As Row In Tables("表A").Rows
    s.clear
    s.AppendLine(r("经历"))
    v = s.Tostring
    FileSys.WriteAllText( fl & "\" & r("姓名") & ".txt", v, False, Encoding.Default)
Next

方法二:
For Each r As Row In Tables("表A").Rows
    FileSys.WriteAllText( fl & "\" & r("姓名") & ".txt", r("经历"), False, Encoding.Default)
Next
[此贴子已经被作者于2021/1/29 14:18:16编辑过]

 回到顶部