我需要检查目录中是否存在文件。我想到的两个选项是使用正则表达式 ( 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 宏中使用上述任一方法。