recursion limit when creating file list of harddrive

Geoff Canyon gcanyon at gmail.com
Wed Oct 28 10:55:55 EDT 2015


For me it made more sense to change the exit value to 1. That way the value
is the number of layers you want *including* the directory you specify. So:

put directoryListing("/Users/gcanyon/Desktop",1)
-- puts /Users/gcanyon/Desktop

That way using either 0 or empty gets the infinite list.

The trailing "/" is an interesting point. I checked and the "set the
directory" command will happily take a trailing "/" or not, but when you
"put the directory" you get no trailing "/"

Given that, I'd probably leave it as is, and always assume that the
description of a particular directory needs to have the "/" added when
adding a filename or directoryname to it. But you could of course go the
other way. Making the function flexible to take a trailing "/" or not would
require something like:

if char -1function directoryListing whatFolder,c
   if char -1 of whatFolder <> "/" then put "/" after whatFolder
   put whatFolder & cr into R
   set the directory to whatFolder
   if c = 1 or the result is not empty then return R
   put the files into tFileList
   sort tFileList
   replace cr with cr & whatFolder in tFileList
   put whatFolder & tFileList & cr after R
   put line 2 to -1 of the folders into tDirList
   sort tDirList
   repeat for each line L in tDirList
      put directoryListing((whatFolder & L),(c-1)) after R
   end repeat
   return R
end directoryListing


On Tue, Oct 27, 2015 at 3:43 PM, Michael Doub <mikedoub at gmail.com> wrote:

> Geoff,
>
> I would suggest replacing the first statement of the function with
>
> if c is empty then put -1 into c    -- set the default to go all the way
> down
> put whatFolder & "/" & cr into R  -- add a "/" to directory output so they
> are more easily parsed later
>
> -= Mike
>
>
>
> On 10/27/15 12:18 PM, Geoff Canyon wrote:
>
>> Revised. Now in function form, with error checking and depth control. You
>> can hand in a positive number to get that number of layers deep, or a
>> negative number to go all the way down. I tested it on my home directory
>> and it came back fine (after some time). I haven't (knowingly) tested with
>> unusual characters.
>>
>> on mouseUp
>>     put directoryListing(fld "directory",round(the thumbposition of
>> scrollbar "depth")) into field "listing"
>> end mouseUp
>>
>> function directoryListing whatFolder,c
>>     put whatFolder & cr into R
>>     set the directory to whatFolder
>>     if c = 0 or the result is not empty then return R
>>     put the files into tFileList
>>     sort tFileList
>>     replace cr with cr & whatFolder & "/" in tFileList
>>     put whatFolder & "/" & tFileList & cr after R
>>     put line 2 to -1 of the folders into tDirList
>>     sort tDirList
>>     repeat for each line L in tDirList
>>        put directoryListing((whatFolder & "/" & L),(c-1)) after R
>>     end repeat
>>     return R
>> end directoryListing
>>
>>
>> On Mon, Oct 26, 2015 at 12:00 AM, Geoff Canyon <gcanyon at gmail.com> wrote:
>>
>> On Sat, Oct 24, 2015 at 7:28 PM, Matthias Rebbe | M-R-D <
>>> matthias_livecode_150811 at m-r-d.de> wrote:
>>>
>>> I am using a script snippet which was posted by Scott Rossi to the list
>>>> and was originally from Geoff Canyon in 2002.
>>>> http://lists.runrev.com/pipermail/metacard/2002-August/002274.html
>>>>
>>>> Man, do I hate looking at my old code...
>>>
>>> _______________________________________________
>> 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