ah sadly i did think of that when i was writing it but it didn't work. Not 100% sure why, but i think mostly that many of those methods in Files take a varargs of stuff like LinkOption... OpenOption... and the groovy category support isn't resolving properties past that.
-- Rachel Greenham rac...@merus.eu > On 20 Oct 2021, at 11:55, MG <mg...@arscreat.com> wrote: > > Don't know if you already know this, but using Groovy property syntax makes > code even more readable, e.g.: > > println "${it}: ${it.getOwner()} ${it.getPosixFilePermissions()}" > > can be written as: > > println "$it: $it.owner $it.posixFilePermissions" > > In general: > 1. Any getter can be accessed without the "get" prefix with a lowercase first > char > 2. A simplified string interpolation syntax without the enclosing curly > braces can be used in these cases > (same goes for setters) > > Cheers, > mg > > > On 20/10/2021 12:14, James McMahon wrote: >> Many thanks to each of you who offered guidance. Redirecting back to this >> today, anticipating success given your advice. Still getting a feel for >> Groovy so this helps quite a bit. >> Cheers, >> -Jim >> >> On Fri, Oct 15, 2021 at 11:22 AM Søren Berg Glasius <soe...@glasius.dk >> <mailto:soe...@glasius.dk>> wrote: >> @Rachel Rudnick <mailto:rac...@cirrusidentity.com> that is a very clever use >> of use - good call! >> >> Best regards / Med venlig hilsen, >> Søren Berg Glasius >> >> Hedevej 1, Gl. Rye, 8680 Ry, Denmark >> Mobile: +45 40 44 91 88, Skype: sbglasius >> --- Press ESC once to quit - twice to save the changes. >> >> >> Den fre. 15. okt. 2021 kl. 17.12 skrev Rachel Greenham <rac...@merus.eu >> <mailto:rac...@merus.eu>>: >> Looks like you could pretty much use Files as an extension module and/or >> category for Path... >> >> Hang on, does it work? >> >> groovy> import java.nio.file.* >> groovy> use (Files) { >> groovy> Path p = Path.of("src/groovy") >> groovy> println "is directory? ${p.isDirectory()}" >> groovy> p.list().each { println "${it}: ${it.getOwner()} >> ${it.getPosixFilePermissions()}" } >> groovy> } >> >> is directory? true >> src/groovy/benchmark: rachel [OWNER_WRITE, OTHERS_READ, OWNER_EXECUTE, >> GROUP_READ, GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_READ] >> src/groovy/xdocs: rachel [OWNER_WRITE, OTHERS_READ, OWNER_EXECUTE, >> GROUP_READ, GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_READ] >> src/groovy/bootstrap: rachel [OWNER_WRITE, OTHERS_READ, OWNER_EXECUTE, >> GROUP_READ, GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_READ] >> src/groovy/LICENSE: rachel [OWNER_WRITE, OTHERS_READ, GROUP_READ, OWNER_READ] >> ... >> >> oh yeah that works 😉 >> >> -- >> Rachel Greenham >> rac...@merus.eu <mailto:rac...@merus.eu> >> >> > On 15 Oct 2021, at 15:57, Nelson, Erick <erick.nel...@hdsupply.com >> > <mailto:erick.nel...@hdsupply.com>> wrote: >> > >> > import java.nio.file.Path >> > import java.nio.file.Files >> > >> > File f = new File('test') >> > Path p = f.toPath() >> > Files.isReadable(p) // boolean >> > Files.isWritable(p) // boolean >> > Files.isExecutable(p) // boolean >> > Files.isDirectory(p) // boolean >> > Files.isRegularFile(p) // boolean >> > >> > >> > From: James McMahon <jsmcmah...@gmail.com <mailto:jsmcmah...@gmail.com>> >> > Date: Friday, October 15, 2021 at 4:50 AM >> > To: users@groovy.apache.org <mailto:users@groovy.apache.org> >> > <users@groovy.apache.org <mailto:users@groovy.apache.org>> >> > Subject: Checking directory state using Groovy >> > >> > Hello. I am trying to convert an existing script from python to Groovy. It >> > executes a number of os.path and os.access commands, which I've not yet >> > been able to find examples of that are written in Groovy. I have found >> > similar implementations that employ "add on" Jenkins libraries for Groovy, >> > but I will not have access to such libraries.Here is a brief excerpt from >> > what I now do in python. Has anyone done similarly in Groovy? Can I impose >> > for an example? >> > >> > Thanks very much in advance. Here is my python: >> > >> > if ( os.path.exists(result['thisURL']) and >> > os.path.isfile(result['thisURL']) ) : >> > if ( os.access(result['thisURL'], os.F_OK) >> > and os.access(result['thisURL'], os.R_OK) >> > and os.access(thisDri, os.W_OK) >> > and os.access(thisDir, os.X_OK) ) : >> > # do some stuff >> > else : >> > # dir and file not accessible, do some different stuff >> >