Re: First letter of dir() result
- Posted by SDPringle Jan 23, 2019
- 1036 views
irv said...
If you wish to build a filter which can do this, plus is easily expandable to do other things:
include std/filesys.e include std/console.e include std/sequence.e object files = dir("/home/irv") files = vslice(filter(files,routine_id("filefilter")),D_NAME) -- vslice gives us just the names display(files) function filefilter(object x, object y) if equal(x[D_NAME][1],'.') -- remove hidden files; or equal(x[D_NAME],".") -- remove dot files; or equal(x[D_NAME],"..") or equal(x[D_ATTRIBUTES],"d") then return 0 -- remove folders; end if return 1 end function
Be careful if you want to test for 'd' in attributes. The equal test above will leave your routine processing hidden or read only directories. What you really should do for this attribute is use find :
find('d',x[D_ATTRIBUTES])