只需要将那些30天前的子文件夹从文件夹A移动到文件夹B,并且在B中不存在



我只需要将那些30天前的子文件夹从文件夹A移动到文件夹B。如果文件夹B已经包含一个与要移动的文件夹同名的文件夹,那么将要移动的文件夹重命名为_1,或者干脆不移动文件夹。到目前为止我的代码是:

set fso = CreateObject("Scripting.FileSystemObject") 
set objFol = fso.GetFolder("T:CollectionsPPACecelia Nero") 
set objSubFolders = objFol.SubFolders 
set fso2 = CreateObject("Scripting.FileSystemObject") 
set Dest = fso2.GetFolder("T:CollectionsPPA General")
For each folder in objSubFolders 
  If not fso.FolderExists(Dest) Then
  If DateDiff("d", folder.DateLastModified, Now) > 30 Then
  fso.Movefolder folder, "T:CollectionsPPA General" 
end if
end if
Next
If not fso.FolderExists(Dest) Then

这张支票似乎和你期望的不一样。您想要验证要复制的文件夹在目标文件夹中不存在,但是上面的行只检查目标文件夹本身是否不存在。改成这样:

If Not fso.FolderExists(fso.BuildPath(Dest.Path, folder.Name)) Then

当目标文件夹已经存在时,要在复制文件夹中添加数字,您可以这样做:

For Each sf In objFol.SubFolders
  If DateDiff("d", folder.DateLastModified, Now) > 30 Then
    destFolder = fso.BuildPath(Dest.Path, sf.Name)
    i = 0
    Do While fso.FolderExists(destFolder)
      i = i + 1
      destFolder = fso.BuildPath(Dest.Path, sf.Name & "_" & i)
    Loop
    sf.Move destFolder
Next

相关内容

最新更新