Сканирование всех файлов в каталоге и возврат подсчета по типу файла

Я только что присоединился к ИТ-компании и начал работать с ColdFusion. Мой менеджер хочет, чтобы я написал код в ColdFusion, который:

  1. Буду сканировать любой каталог (скажем c:\cf\), которая содержит сотни файлов, включая файлы jQuery, файлы cfm и т. д., и содержит количество таких файлов (мы можем вручную выбрать тип файла для отображения).

Я написал этот код:

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

но он показывает один тип файла за раз. Как я могу проверить несколько типов файлов одновременно?

1 ответ

Решение

По первому вопросу есть два подхода. Либо зацикливайтесь на каждом из типов файлов, которые вас интересуют, выполняя 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>
Другие вопросы по тегам