扫描目录中的所有文件并按文件类型返回计数

时间:2014-04-04 07:30:05

标签: coldfusion coldfusion-7

我刚刚加入了一家IT公司&开始使用ColdFusion。我的经理要我在ColdFusion中编写代码:

  1. 将扫描包含数百个文件(包括jQuery文件,cfm文件等)的任何目录(例如c:\cf\)并提供此类文件的计数(我们可以手动选择要显示的文件类型)。
  2. 我写了这段代码:

        <cfdirectory
            action="list"
            directory="direcoty path" 
            name="Files"
            recurse = "yes"
            filter="*.*" />         
        <cfoutput>No of Java Script: #files.recordCount#</cfoutput>
    

    但它一次显示一种文件类型。如何同时检查多种文件类型?

1 个答案:

答案 0 :(得分:3)

对于第一个问题,有两种方法。循环遍历您感兴趣的每种不同文件类型,为每个文件类型执行cfdirectory。

<cfset filetypes = arrayNew(1)>
<cfset arrayAppend(filetypes, "js")>
<cfset arrayAppend(filetypes, "cfm")>
<cfset arrayAppend(filetypes, "pdf")>

<cfloop index="i" from="1" to="#arrayLen(filetypes)#">
    <cfdirectory
        action="list"
        directory="directory path" 
        name="Files"
        recurse = "yes"
        filter="*.#filetypes[i]#" />         
    <cfoutput>No of #filetypes[i]# files: #files.recordCount#<br></cfoutput>
</cfloop>

或者您可以在一个CFDirectory中执行多种文件类型,请参阅http://www.bennadel.com/blog/1221-CFDirectory-Filtering-Uses-Pipe-Character-For-Multiple-Filters-Thanks-Steve-Withington-.htm

<cfdirectory
    action="list"
    directory="directory path" 
    name="Files"
    recurse = "yes"
    filter="*.js|*.cfm|*.pdf" />         
<cfoutput>No of JS/CFM/PDF files: #files.recordCount#</cfoutput>