0

我正在制作一个脚本来将特定类型的文件从文件夹及其子文件夹移动P:\到创建的文件夹P:\Move or delete中,这样用户就可以在我们删除它们之前看到所有文件。

即使他们没有任何指定的文件类型,它也需要工作P:\,因为大约有 110 人都有自己的P:\.

我需要移动的文件类型是:mkv, bmp, img, jpg, ps, spiff, dib, jfif, pcx, psd, tif, eps, jpe, png, raw, tiff, gif, jpeg, aif, aiff, asf, asx, au, , avi, flac, m3u, mid, midi, mov, mp1, mp2, mp3, mp4, mpa, mpe, mpeg, mpeg2, mpeg3, mpg, ogg, , , , , , , , , , , , , ,qtqtwramrmrmimvbsndswfvobwavwaxwmawmvwvxaac.

这是我到目前为止所拥有的:

' Create Folder
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

' Create a new folder
oFSO.CreateFolder "P:\Move or delete"

下一步是什么?

4

1 回答 1

1

您需要用于遍历文件夹树的代码并检查文件是否符合您的条件。后者可能最好用字典来完成:

Set extensions = CreateObject("Scripting.Dictionary")
extensions.CompareMode = vbTextCompare  'case-insensitive
extensions.Add "mkv", True
extensions.Add "bmp", True
extensions.Add "img", True
...

这样,您可以简单地查找扩展名并在匹配时移动文件:

For Each f In fldr.Files
  If extensions.Exists(fso.GetExtensionName(f)) Then
    f.Move "P:\Move or delete\"  '<-- note the trailing backslash!
  End If
Next

由于您的目标文件夹与您正在搜索文件的驱动器位于同一驱动器上,因此您需要确保将该文件夹排除在遍历之外。

于 2013-09-11T11:14:47.503 回答