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
Jose Diaz-Salcedo added
cfRssFeed
2 day(s) ago
Raymond Compton added
structBlend
23 day(s) ago
Duncan added
IsZIPUK
23 day(s) ago
Todd Sharp added
getTagContentAll
29 day(s) ago
Gerald Guido added
ListReturnDuplicat...
1 month(s) ago