Here's a non-recursive version. I haven't turned it into a custom tag.
It's just a block of code. I might finish it and put it up as a custom
tag on http://www.matthewwalker.net.nz




<cfset Attributes.DirectoryPath = "C:\CFusion\">

<cfset RS = Chr(30)>
<cfset DirectoryPathList = Attributes.DirectoryPath>
<cfset TotalSize = 0>

<cfloop condition="#Len(DirectoryPathList)#">

        <cfset DirectoryPath = ListFirst(DirectoryPathList, RS)>
        <cfset DirectoryPathList = ListRest(DirectoryPathList, RS)>
        <cfdirectory action="LIST" directory="#DirectoryPath#"
name="Directory">
        
        <cfloop query="Directory">
                <cfif (Type EQ "Dir") AND (NOT ListFind(".,..", Name))>
                        <cfset DirectoryPathList =
ListAppend(DirectoryPathList, "#DirectoryPath##Name#\", RS)>
                <cfelse>
                        <cfset TotalSize = TotalSize + Size>            
                </cfif>
        </cfloop>
        
</cfloop>

<cfoutput>#TotalSize#</cfoutput>





-----Original Message-----
From: Kevin Schmidt [mailto:[EMAIL PROTECTED]]
Sent: Thursday, 18 April 2002 9:02 a.m.
To: CF-Talk
Subject: Custom tag (here it is)


<cfdirectory 

            name="getdirs" 

            directory="#attributes.dir#" 

            action="list"

            sort="size ASC"

            >

            

            <cfloop query="getdirs">

                        <cfif (type eq "Dir") AND (name neq ".") AND
(name neq "..")>

                                    <cfset dir =
"#attributes.dir#\#name#">

                                    <cf_directorysize dir="#dir#">

                        <cfelse>

                                    <cfif type eq "File">

                                                <cfset request.filecount
= request.filecount + 1>

                                                <cfset request.filesize
= request.filesize + size>

                                    </cfif>

                        </cfif>

            </cfloop>  

 

This tag works for smaller directorys (ie 35 folders (nested 3 deep)
with 114 files) but it seems to start to lose count on bigger
directories IE 200 + folders and  1000 + files

 

Any ideas. 

 

All I need is the size of all the files in the folders and sub folders.
I tried the filesystem COM object but it didn't like working across the
network shares.

 

Any idea on that would help too! 

 

Kevin

 

 

 

 



______________________________________________________________________
Signup for the Fusion Authority news alert and keep up with the latest news in 
ColdFusion and related topics. http://www.fusionauthority.com/signup.cfm
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/cf-talk@houseoffusion.com/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to