Hi,
i have a Dir Tree Function, that works fine, till it comes to a few files
like “persist”, “usbdisk”, “config”, “cache” …
-
where it stops with “runtime error” ---- Permission denied—
-
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!