recursion limit when creating file list of harddrive

JB sundown at pacifier.com
Sun Oct 25 19:05:27 EDT 2015


THANK YOU VERY MUCH, Alex.

JB


> On Oct 25, 2015, at 3:39 PM, Alex Tweedly <alex at tweedly.net> wrote:
> 
> 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 <alex at 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 at 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 at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
> 





More information about the use-livecode mailing list