如何读取磁盘嵌套文件夹与文件名并导出到Excel文件
多级嵌套磁盘资源Excel编目实现方案
方案1:PowerShell 批量导出+Excel快速整理(无需编码基础)
- 打开需要编目的根文件夹,在顶部地址栏输入
powershell后回车,直接打开当前路径下的PowerShell窗口 - 执行导出命令,将所有文件、文件夹的全路径、类型、大小、修改时间等信息导出为CSV文件:
Get-ChildItem -Recurse -Force | Select-Object FullName, PSIsContainer, Length, LastWriteTime | Export-Csv -Path "磁盘编目.csv" -Encoding UTF8 -NoTypeInformation
其中PSIsContainer字段为True代表当前记录是文件夹,False代表是文件,Length为文件大小(单位字节) - 用Excel打开导出的
磁盘编目.csv文件,预估路径最大嵌套层级,新增对应数量的列,依次命名为层级1、层级2……层级N - 选中层级1的第一个空白单元格,输入公式
=TEXTSPLIT(A2,"\")(假设全路径存储在A列),回车后会自动按路径分隔符拆分内容填充到对应层级列,下拉公式即可完成全量路径的层级拆分 - 补充:如果使用2019及更早版本Excel无
TEXTSPLIT函数,可选中全路径列,依次点击「数据」选项卡→「分列」→选择「分隔符号」→下一步→其他输入\→点击完成,即可实现相同的拆分效果 - 可额外添加条件格式,将
PSIsContainer为True的行标注背景色,快速区分文件夹和文件
方案2:Excel VBA 一键生成编目(适合高频使用场景)
- 打开Excel,按下
Alt+F11调出VBA编辑器,右键点击左侧当前工作簿名称,选择「插入」→「模块」 - 将以下代码粘贴到模块编辑区:
Sub 磁盘资源编目() Dim 根文件夹 As String Dim fso As Object Dim 输出行 As Integer '选择要编目的根文件夹 With Application.FileDialog(msoFileDialogFolderPicker) If .Show = -1 Then 根文件夹 = .SelectedItems(1) Else Exit Sub End With Set fso = CreateObject("Scripting.FileSystemObject") '初始化表头 输出行 = 1 Cells(输出行, 1) = "全路径" Cells(输出行, 2) = "类型" Cells(输出行, 3) = "大小(字节)" Cells(输出行, 4) = "修改时间" Cells(输出行, 5) = "层级1" '调用递归遍历函数 Call 遍历子文件夹(fso.GetFolder(根文件夹), 5, 输出行, fso) '自动调整列宽 Columns.AutoFit MsgBox "编目完成,共生成" & 输出行 - 1 & "条记录" End Sub Sub 遍历子文件夹(当前文件夹 As Object, 当前层级 As Integer, ByRef 输出行 As Integer, fso As Object) Dim 子文件夹 As Object Dim 文件 As Object Dim 路径拆分 As Variant '输出当前文件夹信息 输出行 = 输出行 + 1 Cells(输出行, 1) = 当前文件夹.Path Cells(输出行, 2) = "文件夹" Cells(输出行, 3) = "" Cells(输出行, 4) = 当前文件夹.DateLastModified 路径拆分 = Split(当前文件夹.Path, "\") For i = 0 To UBound(路径拆分) Cells(输出行, 5 + i) = 路径拆分(i) Next '输出当前文件夹下所有文件 For Each 文件 In 当前文件夹.Files 输出行 = 输出行 + 1 Cells(输出行, 1) = 文件.Path Cells(输出行, 2) = "文件" Cells(输出行, 3) = 文件.Size Cells(输出行, 4) = 文件.DateLastModified 路径拆分 = Split(文件.Path, "\") For i = 0 To UBound(路径拆分) Cells(输出行, 5 + i) = 路径拆分(i) Next Next '递归遍历所有子文件夹 For Each 子文件夹 In 当前文件夹.SubFolders Call 遍历子文件夹(子文件夹, 当前层级 + 1, 输出行, fso) Next End Sub
- 回到Excel界面,按下
Alt+F8调出宏窗口,选择「磁盘资源编目」点击执行,选择需要编目的根文件夹即可自动生成完整的层级编目内容,无需额外操作。
内容的提问来源于stack exchange,提问作者bob0901
相关产品推荐
相关产品推荐

