1. '-------------------------------------------
  2. '获取某文件夹下所有文件和子目录下的文件
  3. '-------------------------------------------
  4. Sub getAllFile()
  5.  
  6. Cells.ClearContents
  7.  
  8. Call getFileNm(ChooseFolder(), , )
  9.  
  10. MsgBox "处理完成!"
  11.  
  12. End Sub
  13.  
  14. '-------------------------------------------
  15. '获取目标文夹路径
  16. '-------------------------------------------
  17. Public Function ChooseFolder() As String
  18. Dim dlgOpen As FileDialog
  19. Set dlgOpen = Application.FileDialog(msoFileDialogFolderPicker)
  20. With dlgOpen
  21. If .Show = - Then
  22. ChooseFolder = .SelectedItems()
  23. End If
  24. End With
  25. Set dlgOpen = Nothing
  26. End Function
  27.  
  28. '-------------------------------------------
  29. '获取文件夹下所有文件和文件夹名称
    'row worksheet里的打印行
    'col worksheet里的打印列(根据层次显示)
  30. '-------------------------------------------
  31. Public Sub getFileNm(ByVal subFolderPath As String, _
  32. ByRef row As Integer, _
  33. ByVal col As Integer)
  34. Dim fileName As String
  35. Dim subFolderVisited As String
  36.  
  37. col = col +
  38. subFolderPath = subFolderPath & "\"
  39. fileName = Dir(subFolderPath, vbDirectory)
  40. Do While fileName <> ""
  41. If fileName <> "." And fileName <> ".." Then
  42. If GetAttr(subFolderPath & fileName) And vbDirectory Then
    '文件夹的场合
  43. row = row +
  44. Worksheets().Cells(row, col) = fileName
  45. Call getFileNm(subFolderPath & fileName, row, col)
  46. Else
  47. '文件的场合
  48. row = row +
  49. Worksheets().Cells(row, col) = fileName
  50. End If
  51. End If
  52. '获取执行递归前的下一个文件
  53. subFolderVisited = Dir(subFolderPath, vbDirectory)
  54. Do While subFolderVisited <> fileName
  55. subFolderVisited = Dir
  56. Loop
  57. fileName = Dir
  58. Loop
  59.  
  60. End Sub

使用Dir,遍历文件夹下所有子文件夹及文件的更多相关文章

  1. java基础 File与递归练习 使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印按层次打印(包括所有子文件夹的文件) 多层文件夹情况统计文件和文件夹的数量 统计已知类型的数量 未知类型的数量

    package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件过滤器筛选将指定文件夹下的小于200K ...

  2. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  3. asp.net 遍历文件夹下全部子文件夹并绑定到gridview上

    遍历文件夹下所有子文件夹,并且遍历配置文件某一节点中所有key,value并且绑定到GridView上 Helper app_Helper = new Helper(); DataSet ds = n ...

  4. .NET Core中复制源文件夹下的所有内容到新文件夹

    .NET Core中没有原生的复制文件夹方法,我们可以自己写个: 新建一个.NET Core控制台项目,示例代码如下: using System; using System.IO; namespace ...

  5. 为多个文件夹下的C源代码编写Makefile文件

    上一篇文章写了如何为在同一个文件夹下的C源代码,本篇文章为多个文件夹下的C源代码编写Makefile文件. 建立两个文件夹,分别为abs与src.其最终目录结构如下: 1 $ ls * 2 jun.c ...

  6. C#TreeView控件遍历文件夹下所有子文件夹以及文件

    一直对递归的理解不深刻,有时候觉得很简单,可是用起来总会出错.这里需要在TreeView控件里显示一个文件夹下的所有目录以及文件,毫无意外的需要用到递归. 一开始,想到用递归写一个生成每一个节点(Tr ...

  7. 算法积累:解决如何获取指定文件夹路径或者文件路径下所有子文件后缀为.h .m .c的文本的行数

    1.先解决如何获取一个文件的代码行数 一开始对于这个问题,我的思路就回荡在:1字符串子字符串的判断 2循环直到结束的想法 3将原来是"\n"替换掉之类的想法 一个问题总会有多种解决 ...

  8. JAVA中删除文件夹下及其子文件夹下的某类文件

    ##定时删除拜访图片 ##cron表达式 秒 分 时 天 月 ? ##每月1日整点执行 CRON1=0 0 0 1 * ? scheduled.enable1=false ##图片路径 filePat ...

  9. Java实现读取文件夹下(包括子目录)所有文件的文件名

    在编程的过程中,经常会用到对文件的读写操作等.比如,找出某一个文件夹下的所有文件名等. 下面的程序给出了,获取某一给定文件夹下所有文件的绝对路径的程序.可以作为某一个模块,在需要的时候直接使用. pa ...

随机推荐

  1. 比较.NET程序集(DLL或EXE)是否相同

    如何比较两个.NET程序集(DLL或EXE)是否相同呢? 直接比较文件内容?当然没那么简单了,这个你可以去试试,去比较一下两次Build产生的程序集, 就算内容没有改变,产生的程序集的二进制文件也是不 ...

  2. git常用命令

    开始的时候 git config --global user.name "Your Name" git config --global user.email "email ...

  3. Leetcode 55. Jump Game

    我一开始认为这是一道DP的题目.其实,可以维护一个maxReach,并对每个元素更新这个maxReach = max(maxReach, i + nums[i]).注意如果 i>maxReach ...

  4. SUSE系统查看各种信息

    系统版本 # 显示内核版本 uname -a # 可看gcc版本 cat /proc/version # 显示linux基准库 lsb_release -a # 显示Suse版本准确版本 cat /e ...

  5. Sql的decimal、float、double类型的区别

    三者的区别介绍 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E ...

  6. NOIp 1109

    停课后的第一场模拟赛,应该不会怎么说今天的模拟赛,除了第一题不知道那种筛法的复杂度是$log$的没敢写,其他都挺水的.另外,第三题的数据也弱化了,建议去这里再交一遍. 贴一下AC代码,有兴趣可以参考一 ...

  7. initialization & finalization

    Delphi 的pas文件中可以有initialization和finalization两个关键字, 1.initialization关键字: 在initialization关键字到finalizat ...

  8. swift实现水仙花数

    //: Playground - noun: a place where people can play import Cocoa for var a in 1...4{ var b = 4 - a ...

  9. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  10. java内存泄漏的几种情况

    转载于http://blog.csdn.net/wtt945482445/article/details/52483944 Java 内存分配策略 Java 程序运行时的内存分配策略有三种,分别是静态 ...