CFLib.org – Common Function Library Project

directoryCopy(source, destination [, nameConflict])

Last updated July 26, 2005
Download UDF

author

Joe Rinehart                                      Joe Rinehart

Version: 1 | Requires: ColdFusion MX | Library: FileSysLib

Description:
Deep copies a directory, copying all children. Nameconflict parameter allows you to specific any valid nameconflict attribute for the cffile action="copy" tag (skip / overwrite / makeunique / etc.).

Return Values:
Returns nothing.

Example:

<cfset directoryCopy("c:\inetpub\wwwroot", "c:\backups\wwwroot") />

Parameters:

Name Description Required
source Source directory. Yes
destination Destination directory. Yes
nameConflict What to do when a conflict occurs (skip, overwrite, makeunique). Defaults to overwrite. No

Full UDF Source:

<!---
Copies a directory.

@param source      Source directory. (Required)
@param destination      Destination directory. (Required)
@param nameConflict      What to do when a conflict occurs (skip, overwrite, makeunique). Defaults to overwrite. (Optional)
@return Returns nothing.
@author Joe Rinehart (joe.rinehart@gmail.com)
@version 1, July 27, 2005
--->

<cffunction name="directoryCopy" output="true">
    <cfargument name="source" required="true" type="string">
    <cfargument name="destination" required="true" type="string">
    <cfargument name="nameconflict" required="true" default="overwrite">

    <cfset var contents = "" />
    <cfset var dirDelim = "/">
    
    <cfif server.OS.Name contains "Windows">
        <cfset dirDelim = "\" />
    </cfif>
    
    <cfif not(directoryExists(arguments.destination))>
        <cfdirectory action="create" directory="#arguments.destination#">
    </cfif>
    
    <cfdirectory action="list" directory="#arguments.source#" name="contents">
    
    <cfloop query="contents">
        <cfif contents.type eq "file">
            <cffile action="copy" source="#arguments.source#\#name#" destination="#arguments.destination#\#name#" nameconflict="#arguments.nameConflict#">
        <cfelseif contents.type eq "dir">
            <cfset directoryCopy(arguments.source & dirDelim & name, arguments.destination & dirDelim & name) />
        </cfif>
    </cfloop>
</cffunction>

Search CFLib.org


Latest Additions

Raymond Compton Raymond Compton added
structBlend
19 day(s) ago

Duncan Duncan added
IsZIPUK
19 day(s) ago

Todd Sharp Todd Sharp added
getTagContentAll
25 day(s) ago

Gerald Guido Gerald Guido added
ListReturnDuplicat...
1 month(s) ago

Gerald Guido Gerald Guido added
ListReturnDuplicat...
1 month(s) ago

Created by Raymond Camden / Design by Justin Johnson