2013-09-11 1 views
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,,, mov, mp1, mp2, mp3, mp4, mpa, mpe, mpeg, mpeg2, , mpg, ogg, qt, qtw, ram, rm, rmi, mvb, snd, swf, vob, wav, wax, wma, wmv, wvx, aac.

Вот что я до сих пор:

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

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

Что дальше?

ответ

1

Вам нужен код для traversing the folder tree и проверка, соответствует ли файл вашим критериям. Последнее, вероятно, лучше всего делать со словарем:

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 

Поскольку папка назначения находится на тот же диск, который вы ищете для файлов, вам нужно убедиться, что папка исключена из обхода.