我有一个文件夹“Documents”,里面有很多子文件夹。这些子文件夹下有文件。
我的目标是将文件移动到一个文件夹位置,然后在某个时候将它们移回它们原来的子文件夹。
我的一般想法是在移动后将子文件夹名称附加到文件的开头。然后当需要将它们移回源子文件夹时,也许可以将其用作参考。
这是可行的吗?或者您对如何实现这一点还有其他想法吗?我只知道如何在 VBA 中移动/复制文件。
这是我当前使用的代码:
Fldr= "C:\Documents"
Set fs=createobject("scripting.filesystemobject")
Set f=fs.getfolder(Fldr)
Set fsub=f.subfolders
For each f in fc
Subfolderspec=Fldr&"\"&f.name
fs.copyfile Subfolderspec & "*.*", "C:\Test"
On Error Resume Next
Next
答案1
我不知道这是否是最好的方法,但按照您的要求,此代码可以起作用:
Fsrc = "C:\Documents"
Fdst = "C:\Test\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(Fsrc)
Set fsub = f.SubFolders
If Mid(Fdst, Len(Fdst), 1) <> "\" Then Fdst = Fdst & "\"
For Each f In fsub
For Each fl In fs.GetFolder(Fsrc & "\" & f.name).Files
new_name = Fsrc & "\" & f.name
new_name = Replace(new_name, ":", "")
new_name = Replace(new_name, "\", "_")
new_name = new_name & "_" & fl.name
fs.CopyFile fl, Fdst & new_name
Next
On Error Resume Next
Next