2014-11-05 1 views
0

Я использую функцию Dir, чтобы получить содержимое каталога прямо сейчас.Получить содержимое каталога с помощью wildcast с FileSystemObject

FileSpec = DirPath & "/GenerateID_*_*.zip" 
FileName = Dir(FileSpec) 

Но функция Dir блокирует папку и не может удалить эту папку, пока я не закрою приложение VBA. Я пробовал ChDir("C:\"), чтобы сделать этот пункт в другой каталог после вызова функции Dir, но он не работает.

Можно ли фильтровать с помощью FileSystemObject, как функция Dir? Или получить все файлы с помощью FileSystemObject, зациклировать каждое имя файла и проверить, что каждый из них будет единственным вариантом?

ответ

1

Вы можете, конечно, прокручивать файлы с помощью FileSystemObject. Из MSDN documentation для Files Собственности FileSystemObject:

Function ShowFileList(folderspec) 
    Dim fso, f, f1, fc, s 
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set f = fso.GetFolder(folderspec) 
    Set fc = f.Files 
    For Each f1 in fc 
     s = s & f1.name 
     s = s & "<BR>" 
    Next 
    ShowFileList = s 
End Function 

Это возвратит строку, ограниченную «< BR>». Вы можете заменить это чем-то другим, например vbCrLf или любым другим, что вам нравится, затем проанализировать строку по мере необходимости.

Смежные вопросы