Мне нужно проверить, существует ли файл в каталоге.Два варианта, о которых я подумал, - использовать регулярное выражение (vbscript.regexp
) для определения наличия файла.Другой вариант заключается в использовании метода FileSystemObject
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 macro.