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 > On 15 Oct 2021, at 15:57, Nelson, Erick <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> > Date: Friday, October 15, 2021 at 4:50 AM > To: users@groovy.apache.org <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