If you need lastmodified you can get it this way without needing that Delphi
code:

<cfscript>
function getDateLastModified(path) {
fh = createObject("java", "java.io.File");
fh.init(path);
utcOffset = getTimeZoneInfo().utcTotalOffset +
iif(getTimeZoneInfo().isDSTOn, 3600, 0);
return dateAdd("s", fh.lastModified() / 1000 - utcOffset, createDate(1970,
1, 1));
}

pathToFile = getCurrentTemplatePath();
writeOutput(getDateLastModified(pathToFile));
</cfscript>

cheers,
barneyb
  -----Original Message-----
  From: Nelson Winters [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, October 21, 2003 11:02 AM
  To: CF-Talk
  Subject: Re: cfdirectory = slow

  Thanks for the suggestion.  In my case, I actually need to get the
LastModifiedDate provided by cfdirectory.  I can work around the problem by
calling some Delphi code a coworker created, but I'd like to see the problem
get fixed.  This really shouldn't be a problem.  In this particular case I'm
only retrieving 1 file, however, this issue would affect any filtered
directory listing.

  -Nelson

  ----- Original Message -----
    From: Barney Boisvert
    To: CF-Talk
    Sent: Tuesday, October 21, 2003 1:46 PM
    Subject: RE: cfdirectory = slow

    If you are only pulling one file back, why are you using CFDIRECTORY at
all?
    You already know the filename, so you can just use fileExists() to check
if
    it's there, and CFFILE to read it in if you need the contents.
      -----Original Message-----
      From: Nelson Winters [mailto:[EMAIL PROTECTED]
      Sent: Tuesday, October 21, 2003 10:24 AM
      To: CF-Talk
      Subject: cfdirectory = slow

      Where do I report issues with CFMX to Macromedia?  I know I'm not the
    first
      to discover this, but cfdirectory is extremely inefficient when
dealing
    with
      large directories.  I don't know if this is a problem with J2EE
platform
      that CFMX runs on top of or what, but it shouldn't take several
seconds to
      do a cfdirectory where I'm pulling only one file back, even if the
    directory
      has a 100,000+ files in it.   It seems like cfdirectory loads the
entire
      directory contents into memory and then applies the filter.

      Below is some sample code if anyone wants to see what I'm talking
about.

      -Nelson

      <!--- Create a bunch of files --->
      <cfset vDir = "d:\test">
      <cfset NumberOfFilesToCreate = 100000>

      <cfif NOT DirectoryExists(vDir)>
          <cfdirectory action="" directory="#vDir#">
      </cfif>

      <cfloop from="1" to="#NumberOfFilesToCreate#" index="i">
      <cffile action="" file="#vDir#\z#i#.txt" output="This is file
number
      #i#.">
      </cfloop>

      <!--- Get File Info --->
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      <html>
      <body>
      <cfset start = GetTickCount()>
      <cfset tmp = Randomize(right(start, 8))>
      <cfset fileIndex = RandRange(1, 1000000)>
      <cfif FileExists("#vDir#\z#fileIndex#.txt")>
      <cfdirectory action="" directory="#vDir#" name="dirTest"
      filter="z#fileIndex#.txt" >
      <cfdump var="#dirTest#">
      <cfoutput>@#fileContents#@</cfoutput>
      <cfelse>
      <cfoutput>File not found.</cfoutput>
      </cfif>
      <hr>Processing Time: <cfoutput>#GetTickCount()-Start#</cfoutput>
      </body>
      </html>


[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]

Reply via email to