Сканирование всех файлов в каталоге и возврат подсчета по типу файла
Я только что присоединился к ИТ-компании и начал работать с ColdFusion. Мой менеджер хочет, чтобы я написал код в ColdFusion, который:
- Буду сканировать любой каталог (скажем
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>