FileSearch строгость вопроса - PullRequest
0 голосов
/ 31 октября 2009

В настоящее время я пытаюсь найти в каталогах любой файл с меткой «??. ??. ????. Xls» (для mm.dd.yyyy.xls). У меня проблема в том, что код, который я использую, также соответствует именам файлов, таким как «my-restaurant.12.01.2006.xls». Я хочу сопоставлять имена файлов только с тем обозначением, которое я использовал выше.

Dim Invoices As FileSearch
Set Invoices = Application.FileSearch

With Invoices
    .Filename = "??.??.????.xls"
    ' invDir is a directory I chose earlier on
    .LookIn = invDir
    .SearchSubFolders = True
    .MatchTextExactly = True
End With

Есть что-то, что я пропускаю? Я знаю, что мог бы еще раз проверить мой код в другом месте, чтобы убедиться, что длина имени файла составляет 14 символов, но есть ли параметр, который я не рассматриваю в FileSearch?

Ответы [ 2 ]

0 голосов
/ 31 октября 2009

После некоторого исследования и игры я делаю вывод, что точное совпадение без проверки длины невозможно.

Btw. Application.FileSearch объект больше недоступен из Office 2007+, поэтому, возможно, стоит рассмотреть возможность использования FileSystemObject вместо

0 голосов
/ 31 октября 2009

Попробуйте использовать метод NewSearch следующим образом:

Dim Invoices As FileSearch
Set Invoices = Application.FileSearch

With Invoices
    .NewSearch
    .Filename = "??.??.????.xls"
    '' invDir is a directory I chose earlier on
    .LookIn = invDir
    .SearchSubFolders = True
    .MatchTextExactly = True
End With

Замечания в документации приводят меня к мысли, что критерии поиска не были установлены / сброшены:

Настройки критериев поиска сохраняются на протяжении всей сессии приложения. использование этот метод каждый раз, когда вы меняете критерий поиска. Этот метод не будет сбросить значение LookIn свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...