以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 怎么获取所选择的目录,并读取该目录下的所有文件的内容 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160331) |
-- 作者:cnsjroom -- 发布时间: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 上述代码有没有更加简洁的办法 就是直接选择文件夹目录 即可 而不是先通过选择文件 然后返回目录 再去读该目录下的所有文件的内容
|
-- 作者:有点蓝 -- 发布时间:2021/1/29 11:58:00 -- 选择目录参考:http://www.foxtable.com/webhelp/topics/0359.htm 但是读该目录下的所有文件也必须使用FileSys.GetFiles
|
-- 作者:cnsjroom -- 发布时间:2021/1/29 12:24:00 -- 回复:(有点蓝)选择目录参考:http://www.foxtable.... 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李四 高中期间获得一等奖 生成的文本为下: 张三 大学期间获得奖励 李四 大学期间获得奖励 高中期间获得一等奖 ‘红色部分是张三的 不应该写入’ 怎么修改代码 不让经历部分进行重复叠加呢? |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/1/29 14:18:00 -- 回复:(有点蓝)For Each r As Row In Tables("表A")... 谢谢 老师 经过学习 下列两个方法都可以实现 方法一: 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编辑过]
|