I could not get it to work. Here is what i did. At the top I put the following line,
put field "Folder" into whatFolder at the bottom I tried both of these lines and nothing was put in the field put tDirsToDo into field "list" put tDirList into field “list” then I tried this line put "tDirList" into field “list” and it put the word tDirList in the vld as would be expected. This was accessing a folder with no sub folders and only a few hundred files. All of the other file Lister even the recursive had no problems with this folder. What am I supposed to be putting in the field? John Balgenorth On Sep 30, 2014, at 3:45 PM, Alex Tweedly <a...@tweedly.net> wrote: > On 30/09/2014 21:32, JB wrote: >> And what do you mean by folders that cannot >> be accessed? Since when are they not able >> to be accessed? I access them all of the time. >> I am a typical user who accesses files & folders >> everyday the same way. > > Yes, most folders and files can be accessed. But there are *some* folders > that cannot be accessed, and because File Lister tries to access every folder > within the starting folder, it will find those few that cannot be accessed - > even though they may never be encountered any other time. > > There are a variety of reasons for folders being inaccessible. > > 1. Permissions. > Try this (in Terminal or other shell). > mkdir sub > cd sub > pwd > --- it properly shows you as being in ....../sub > cd .. > chmod 000 sub (i.e. make the folder inaccessible) > cd sub > -- gives an error message of permission denied > > Similarly, if you no wtry to access in Finder, it will just not "go" into > that directory. > And if you run the original "File Lister 2", it will wrongly report a > recursion limit reached; you need a safety check - whether the one I gave or > another equivalent - to be added. > > > > 2. "Not really a folder" > > There are various pseudo-folders within application bundles that aren't > really folders. You would be unlikely to encounter these in Finder - it > doesn't even show the top level of folders with "Applications". Even in > Terminal, they are hidden - but they are there, and are seen by File Lister - > and in some cases they are inaccessible, so caused the apparent "recursion" > error report. > > 3. This is a Livecode issue !!! Non-ASCII characters in filenames > I have some albums in my iTunes library by foreign artists (Icelandic), who > have characters from the extended character set in their names. In LC, those > don't come out right - so they also fail with the (incorrect) recursion > report. My earlier suggested addition to the code will avoid this becoming a > problem - though you do still have an issue. I suspect that with LC 7.0 this > will cease to be a problem - though it might still need a "URLEncode" or two > to fix it completely. > > 4. Weird folders (:-) > > Inside my iBooks library there are a number of weird folders - they show up > looking like garbage names in LC, and also in Finder and in Terminal. They > have permissions set to allow access - but in fact they don't - to Finder and > terminal as well as to LC. >> >> So you are telling me they cannot be accessed >> and I encourage you to put a program on the >> market and explain that to those who access >> their folders every day and your program does >> not allow them to access it. > Remember - most if not all of these 'folders' aren't really folders, so don't > contain users' files, don't contain user accessible data, and won't be seen > by users. >> They will read your response and quit your program >> and continue to access their folders as usual and you >> will not hear from them again because they do not want >> to spend their time explaining to you they are able to >> access their folders without your program. > No, they won't - because (with the modified code) they will be able to see > all (*) the files and folders they can see in Finder. > (*) with the exception of the Unicode issues mentioned in 3 above. >> >> If it causes me problems it will cause someone else >> problems and I am not going to explain to them do >> not use those folders with my program or block it >> and give them a dialog stating it cannot be accessed. >> >> I liked the idea of recursive but it does not work good >> for me. > It's not "recursive" that's the problem - my non-recursive version had > exactly the same issue (in its first version). Attached below is an updated > version with the 'safety check' that should have been there in the first > place - it now builds a list of "inaccessible' folders in global variable > 'gFailedFolders' as well as the list of files and folders. > (btw - I also changed one "after" to "before" - a marginal extra cost in LC > processing, but gains a large benefit in file access locality). > > > > on dirWalk whatFolder > local temp, tCount, tDirList, tDirsToDo > set the itemDel to "/" > set the directory to whatFolder > put whatfolder &CR into tDirsToDo > repeat forever > put line 1 of tDirsToDo into whatFolder > set the directory to whatFolder > delete line 1 of tDirsToDo > if the directory <> whatfolder then > put whatfolder &CR after gFailedFolders > if the number of lines in tDirsToDo = 0 then exit repeat > next repeat > end if > put the files into temp > add the number of lines of temp to tCount > sort temp > repeat for each line x in temp > put whatFolder & "/" & x & cr after gHierList > end repeat > put the folders into tDirList > sort tDirList > delete line 1 of tDirList > repeat for each line x in tDirList > put whatFolder & "/" & x & CR before tDirsToDo > end repeat > if the number of lines in tDirsToDo = 0 then exit repeat > end repeat > end dirWalk > > - Alex. > > _______________________________________________ > 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