I'm not sure about cursor setting - you might put in a counter, and set it to busy every 1000 (or 10,000) times through loop.

What if we want only folder paths ?

I did briefly consider saying that the @pFiles and @pFolders parameters could have TRUE/False values on input, and then say something like
(NB - typed into email, not tested !!!!)

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 pFiles is TRUE then  -- Do we want to return list of files ??
       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
     end if

     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

  if pFolders is TRUE then  -- Do we want to return list of folders
    combine tA with CR
    put tA into pFolders
  end if

 end AllFiles



On 25/10/2015 23:58, JB wrote:
I have been testing it out and it is working good
so far.  I set the cursor to watch after selecting.
I am not sure if setting it to busy in a repeat will
take too much time on large operations.

Is there and easy way to have it only list the
folder paths?

JB


On Oct 25, 2015, at 3:39 PM, Alex Tweedly <a...@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 <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


_______________________________________________
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