silktest 通过递归实现文件搜索的…

silktest 通过递归实现文件搜索的方法,个人觉得很有用:
  [-] list of STRING  glSYS_SearchFile(STRING sDir, STRING sPattern optional, boolean bContainsSubDir optional)
            [ ] // find all files whose file name matched sPattern under sDir, ignore case
            [ ] // return the expected file path
            [-] if (sPattern == null)
                [ ] sPattern = "*"
            [-] if (bContainsSubDir == null)
                [ ] bContainsSubDir = false
            [-] if (!SYS_DirExists(sDir))
                [ ] RaiseError(-3,"Directory '{sDir}' is not exists!")
            [ ] sDir = Trim(sDir)
            [ ] list of STRING lsResult
            [ ] list of FILEINFO lfContents = SYS_GetDirContents(sDir)
            [ ] FILEINFO fItem
            [-] for each fItem in lfContents
                [-] if (fItem.bIsDir)  // is a directory
                    [-] if (bContainsSubDir)  // whether to clear the sub directory
                        [ ] ListMerge(lsResult,(glSYS_SearchFile(sDir+"\"+fItem.sName,sPattern,true)))
                [-] else
                    [-] if (MatchStr(lower(sPattern),lower(fItem.sName)))
                        [ ] ListAppend(lsResult,sDir+"\"+fItem.sName)
            [ ] return lsResult

调用,例如:
List of String liResults= glSYS_SearchFile("F:\","test.txt",True)
Print(
liResults )
执行看看效果^_^

你可能感兴趣的:(silktest 通过递归实现文件搜索的…)