Мне нужно проверить, существует ли файл в каталоге. Два параметра, о которых я думал, используют регулярное выражение (vbscript.regexp
), чтобы определить, присутствует ли файл. Другой вариант заключается в использовании FileSystemObject
FileExists
.Было бы лучше использовать регулярное выражение или простые FileExists для поиска файлов?
Недостатки использования регулярного выражения подразумевают, что мне нужно будет пропустить каждый файл в каталоге и протестировать регулярное выражение для каждого имени файла. Во-вторых, подход с регулярным выражением может быть сложнее поддерживать (регулярное выражение) в будущем. Тем не менее, мне нужно проверить два регулярных выражения, так как может быть другая версия того же файла. Для одного из файлов есть часть описания имени файла, которая часто изменяется (нормально, это ложь - она изменяется в каком-то случайном цикле), поэтому использование регулярного выражения поможет в согласовании файлов независимо от этой части = более надежный код ,
Используя FileExists
, я могу проверить оба файла одновременно и в зависимости от логического значения, возвращаемого для каждой проверки, обработка может продолжаться. Связанный с этим недостаток для использования FileExists
заключается в том, что сопоставление подстановочных знаков не поддерживается, поэтому при рассмотрении имени файла с описанием это всегда необходимо обновить, чтобы отразить новое описание = больше головных болей в обслуживании. Тем не менее, это проще понять и легче изменить.
Формат имен файлов:
Data_Sheet_<yyyymmdd>_D.xlsx // the normal file
Data_Sheet_<yyyymmdd>_D_<some description>.xlsx // the alternate file
<yyyymmdd>
часть файла будет определяться текущей папке файл находится в
Вопрос:. Было бы лучше использовать регулярное выражение или простой FileExists для поиска файлов?
Я буду использовать любой из указанных методов в макросе Excel vba.
Можете привести несколько примеров? – smirkingman 2010-11-23 09:08:49
@smirkingman - какие примеры? имена файлов? регулярное выражение? использование FileExists? – Ahmad 2010-11-23 09:11:07