DirectoryList(directory [, filter] [, sort] [, recurse])
Last updated April 8, 2004
Version: 2 | Requires: ColdFusion MX | Library: CFMLLib
Description:
Mimics the cfdirectory, action="list" command. Also adds recursive list.
Return Values:
Returns a query.
Example:
dirList = directoryList("c:\temp","","name desc");
</cfscript>
<cfdump var="#dirList#">
Parameters:
| Name | Description | Required |
|---|---|---|
| directory | The directory to list. | Yes |
| filter | Optional filter to apply. | No |
| sort | Sort to apply. | No |
| recurse | Recursive directory list. Defaults to false. | No |
Full UDF Source:
<!---
Mimics the cfdirectory, action="list" command.
Updated with final CFMX var code.
Fixed a bug where the filter wouldn't show dirs.
@param directory The directory to list. (Required)
@param filter Optional filter to apply. (Optional)
@param sort Sort to apply. (Optional)
@param recurse Recursive directory list. Defaults to false. (Optional)
@return Returns a query.
@author Raymond Camden (ray@camdenfamily.com)
@version 2, April 8, 2004
--->
<cffunction name="directoryList" output="false" returnType="query">
<cfargument name="directory" type="string" required="true">
<cfargument name="filter" type="string" required="false" default="">
<cfargument name="sort" type="string" required="false" default="">
<cfargument name="recurse" type="boolean" required="false" default="false">
<!--- temp vars --->
<cfargument name="dirInfo" type="query" required="false">
<cfargument name="thisDir" type="query" required="false">
<cfset var path="">
<cfset var temp="">
<cfif not recurse>
<cfdirectory name="temp" directory="#directory#" filter="#filter#" sort="#sort#">
<cfreturn temp>
<cfelse>
<!--- We loop through until done recursing drive --->
<cfif not isDefined("dirInfo")>
<cfset dirInfo = queryNew("attributes,datelastmodified,mode,name,size,type,directory")>
</cfif>
<cfset thisDir = directoryList(directory,filter,sort,false)>
<cfif server.os.name contains "Windows">
<cfset path = "\">
<cfelse>
<cfset path = "/">
</cfif>
<cfloop query="thisDir">
<cfset queryAddRow(dirInfo)>
<cfset querySetCell(dirInfo,"attributes",attributes)>
<cfset querySetCell(dirInfo,"datelastmodified",datelastmodified)>
<cfset querySetCell(dirInfo,"mode",mode)>
<cfset querySetCell(dirInfo,"name",name)>
<cfset querySetCell(dirInfo,"size",size)>
<cfset querySetCell(dirInfo,"type",type)>
<cfset querySetCell(dirInfo,"directory",directory)>
<cfif type is "dir">
<!--- go deep! --->
<cfset directoryList(directory & path & name,filter,sort,true,dirInfo)>
</cfif>
</cfloop>
<cfreturn dirInfo>
</cfif>
</cffunction>
Search CFLib.org
Latest Additions
Tayo Akinmade added
arrayTrim
3 day(s) ago
Will Belden added
longTime
9 day(s) ago
James Sleeman added
quickSort
19 day(s) ago
Ben Forta added
GetHostAddress
22 day(s) ago
Top Rated
EksporSQLData
Rated 5.0, 16 time(s)
backupDatabase
Rated 5.0, 13 time(s)
indentXml
Rated 5.0, 10 time(s)
generateSsccAsn
Rated 5.0, 4 time(s)