代码之家  ›  专栏  ›  技术社区  ›  SnakeWasTheNameTheyGaveMe

文件搜索严格性问题

  •  0
  • SnakeWasTheNameTheyGaveMe  · 技术社区  · 15 年前

    我正在尝试在目录中搜索任何标记为“”的文件。什么?什么?你说什么??.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 回复  |  直到 15 年前
        1
  •  0
  •   jitter    15 年前

    经过一些研究和玩弄,我得出结论,没有长度检查的精确匹配是不可能的。

    Btw. Application.FileSearch object isn't longer available 从Office2007+开始,因此可以考虑使用 FileSystemObject 相反

        2
  •  0
  •   Buggabill    15 年前

    尝试使用 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的值 财产。