我有一个代码正在工作,并正在组织文件的扩展名。但是,它只在一个文件夹中工作,在这个时候。
假设在一个父文件夹中我有500个子文件夹,在每个子文件夹中,有不同扩展名的文件(例如XML,PDF,Word,文本等)。目前,我需要一次选择一个子文件夹,并通过下面的代码按扩展名将文件移动到文件夹中。
但是,我需要一个方法,当我选择一个父目录时,代码应该读取每个子文件夹,并在每个子文件夹中按扩展名创建文件夹,然后将文件移动到该目录中。
Option Explicit
Sub OrganiseFilesbyFileType()
Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
Dim Folderpath As String
Dim Fle As Scripting.File
Dim FoldpathPrompt As FileDialog
Set FoldpathPrompt = Application.FileDialog(msoFileDialogFolderPicker)
With FoldpathPrompt
.Title = "Select the folder you want to organise files in"
If .Show = -1 Then Folderpath = .SelectedItems(1)
End With
If Folderpath <> "" Then
Dim ParentPath As String
ParentPath = fso.GetParentFolderName(Folderpath)
Dim FolderName As String
FolderName = fso.GetFolder(Folderpath).Name
Dim NewFoldPath As String
NewFoldPath = ParentPath & "\" & FolderName & " - Organized" & "\"
Dim TheFolder As Scripting.Folder
Set TheFolder = fso.GetFolder(Folderpath)
fso.CreateFolder NewFoldPath
For Each Fle In TheFolder.Files
If Not fso.FolderExists(NewFoldPath & Fle.Type) Then
fso.CreateFolder (NewFoldPath & Fle.Type)
End If
Fle.Copy NewFoldPath & Fle.Type & "\" & Fle.Name
Next Fle
TheFolder.Delete
End If
End Sub
2条答案
按热度按时间p4rjhz4m1#
按文件类型组织文件
主要
文件夹选取器
收藏的子文件夹路径
将文件移动到键入文件夹
vqlkdk9b2#
可以使用递归函数,例如: