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
>> 
> 

Reply via email to