Please Help with lfs.attributes (runtime error)

Hi,

i have a Dir Tree Function, that works fine, till it comes to a few files

like  “persist”, “usbdisk”, “config”, “cache” …

  1. where it stops with “runtime error” ---- Permission denied—

  2. when i try to catch it with  " if (nil ~= attr)" I still geterror that attr is NIL? 

any ideas how to catch all of that?

function selectfile(path)

     function dirtree(dir)

    assert(dir and dir ~= “”, “directory parameter is missing or empty”)

 if string.sub(dir, -1) == “/” then

   dir=string.sub(dir, 1, -2)

 end

 local function yieldtree(dir)

   for entry in lfs.dir(dir) do

     if entry ~= “.” and entry ~= “…” then

       entry=dir…"/"…entry

local attr=lfs.attributes(entry)

if attr ~= nil then

coroutine.yield(entry,attr)

print (entry)

print (attr.mode)

if (entry:sub( -7 )  ~= “persist”)

and (entry:sub( -7 )  ~= “usbdisk”)  

and (entry:sub( -7 )  ~= “sdcard1”)  

and (entry:sub( -6 )  ~= “config”)  

and (entry:sub( -5 )  ~= “cache”)  

and (nil ~= attr.mode) 

and (attr.mode == “directory”) then

 yieldtree(entry)

end

end

     end

   end

 end

 return coroutine.wrap(function() yieldtree(dir) end)

end

for filename, attr in dirtree(".") do

if filename:sub( -3 ) == “myd” then

     print(“backupfile: " … filename…” : " … attr.mode)

  end

    --print(attr.mode, filename)

end

end

04-02 10:56:33.875    4349-4372/com.gmail.ilovesinai.CoronaViewer_master I/Corona﹕ ./acct/uid_10030

04-02 10:56:33.875    4349-4372/com.gmail.ilovesinai.CoronaViewer_master I/Corona﹕ directory

04-02 10:56:33.875    4349-4372/com.gmail.ilovesinai.CoronaViewer_master I/Corona﹕ Runtime error

    /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:224: /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:200: cannot open ./acct/uid_10030: Permission denied

    stack traceback:

    [C]: in function ‘(for generator)’

    /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:224: in function ‘selectfile’

    /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:233: in function ‘func’

    /Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:241: in function </Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:221>

04-02 10:56:33.875    4349-4372/com.gmail.ilovesinai.CoronaViewer_master I/Corona﹕ Handling the unhandled error (mydays) /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:224: /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:200: cannot open ./acct/uid_10030: Permission denied

when I tried to:   assert (type(attr) == “table”)

i get:

04-02 09:28:30.554  10381-10381/? W/com.gmail.ilovesinai.CoronaViewer_master﹕ type=1400 audit(0.0:23): avc: denied { getattr } for uid=10237 comm=474C546872656164203130363932 path="/persist" dev=“mmcblk0p29” ino=2 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:persist_file:s0 tclass=dir permissive=0

04-02 09:28:30.567  16676-10381/? I/Corona﹕ Runtime error

    /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:225: /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:204: assertion failed!

    stack traceback:

    [C]: in function ‘(for generator)’

    /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:225: in function ‘selectfile’

    /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:234: in function ‘func’

    /Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:241: in function </Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:221>

04-02 09:28:30.567  16676-10381/? I/Corona﹕ Handling the unhandled error (mydays) /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:225: /data/data/com.gmail.ilovesinai.CoronaViewer_master/files/coronaResources/mydays-backup-others.lua:204: assertion failed!

ok… found a fix

local fhd = io.open( dir ) — check for file permission

if fhd then

 print (“file is fine”)
else

 print (“not accessable”)

end

ok… found a fix

local fhd = io.open( dir ) — check for file permission

if fhd then

 print (“file is fine”)
else

 print (“not accessable”)

end