Well, it's a sad comment on my filing system, but it was easier to rewrite this handler from scratch (and memory) than it was to find the original :-)

Note this is done as a handler rather than a function, because it has 3 return values - a list of files, a list of folders, and a list of any errors. It would be trivial to convert to a function if you prefer that; I just dislike functions with return parameter values.

So, it's had a decent half-hour of testing, but no more than that. Usual money back guarantee applies ....

btw - there is a variant using "repeat for each line" which is marginally more efficient, but it depends on a quirk of the current LC implementation, which allows appending to the variable being iterated over - so I won't mention it here; it could (conceivably, but not likely) fail in some future version.


on mouseUp
   local theFolder
   answer folder "Start where"
   put it into theFile

   local filesList, folderList, errorList
   put the millisecs into tStart
   AllFiles theFile, true, filesList, folderList, errorList

   put filesList into field "Field 1"

end mouseUp

command AllFiles theFolder, pDetail, @pFiles, @pFolders, @pErrors

   set the defaultFolder to theFolder
   if the result is not empty
   then
      put  "initial folder" & theFolder &CR afte rpErrorList
      exit to top
   end if

   put 0 into tHighest
   put 0 into tCurrent

   add 1 to tHighest
   put theFolder into tA[tHighest]

   repeat until tCurrent >= tHighest

      add 1 to tCurrent

      put tA[tCurrent] into tNow
      set the defaultFolder to tNow
      if the result is not empty then
         put "Problem with" && tNow &Cr after pErrors
         next repeat
      end if

      if pDetailed then
         put the detailed files into tF
      else
         put the files into tF
      end if

      repeat for each line L in tF
         put tNow & "/" & L &CR after pFiles
      end repeat

      put the folders into tF
      filter tF without ".*"

      repeat for each line L in tF
         add 1 to tHighest
         put tNow & "/" & L into tA[tHighest]
      end repeat

   end repeat

   combine tA with CR
   put tA into pFolders

end AllFiles

Let me know of any problems.
-- Alex.

On 25/10/2015 03:12, JB wrote:
On Oct 24, 2015, at 5:33 PM, Alex Tweedly <a...@tweedly.net> wrote:


If that's not it, then you need to change to a serialized rather than a 
recursive treewalk - I'm sure that's been posted on the use-list some time ago 
(if you can't find it, let me know and I'll dig one up)

-- Alex.
I would like a copy of that if you
dig one up.

JB


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to