Skip to main content
Inspiring
July 27, 2006
Question

Delete All FIles In A Folder

  • July 27, 2006
  • 2 replies
  • 5673 views
Hello,

I am would like to use cffile to delete all files in a directory every night to clean up pdf files that were created during the day. Is there a way to delete all files with naming each one? What would go in the file path?

<cffile action = "delete" file = "full_path_name">

Gary
    This topic has been closed for replies.

    2 replies

    Inspiring
    July 27, 2006
    It may be easier to just delete the directory using <cfdirectory action="delete" directory="dir_name" />

    Then create a new empty one with the same name right afterwards.

    good luck,
    Mike
    Inspiring
    October 31, 2019

    ...13 years later...

    I like Mike's solution, but sometimes the directory functions are weird in that after you delete, then createa  new one, it throws an error saying that hte directory already exists. Even after checking for existence.

    FWIW, I'm using directoryExists(), directoryDelete(), and directoryCreate(), rather than <cfdirectory>.

    BKBK
    Community Expert
    Community Expert
    November 2, 2019

    Myka wrote:

    ... sometimes the directory functions are weird in that after you delete, then createa  new one, it throws an error saying that hte directory already exists. Even after checking for existence.

     

    Myka, there may be a good reason why it is impossible to "delete, then create" a directory or file within the same request. Namely, the thread to delete the directory or file may still be active when ColdFusion runs the function to create.

    The usual solution is to use a named lock to separate the delete and create operations:

    <cflock name="abc123">

        <!--- delete operation --->

    </cflock> 

    <cflock name="abc123">

        <!--- create operation --->

    </cflock> 

    Inspiring
    July 27, 2006
    You can use cfdirectory to get a name of the files in the directory. Something like:

    <cfset myDir = "c:\PDFs\" />
    <cfdirectory action="list" name="qDir" directory="#myDir#" />
    <cfloop query="qDir">
    <cfif qDir.type IS "file" >
    <cffile action="delete" file="#myDir##qDir.name#" />
    </cfif>
    </cfloop>