@Override public StoreChannel open( File fileName, OpenMode openMode ) throws IOException { return new StoreFileChannel( FileUtils.open( path( fileName ), openMode ) ); }
@Override public void deleteRecursively( File directory ) throws IOException { if ( fileExists( directory ) ) { FileUtils.deletePathRecursively( path( directory ) ); } }
@Override public boolean isDirectory( File file ) { return delegate.isDirectory( file ); }
@Override public void renameFile( File from, File to, CopyOption... copyOptions ) throws IOException { delegate.renameFile( from, to, copyOptions ); }
@Override public int write( ByteBuffer src ) throws IOException { return delegate.write( src ); }
@Override public void copyFile( File from, File to ) throws IOException { FileUtils.copyFile( from, to ); }
@Override public FileLock tryLock() throws IOException { return delegate.tryLock(); }
@Override public InputStream openAsInputStream( File fileName ) throws IOException { return delegate.openAsInputStream( fileName ); }
@Override public Writer openAsWriter( File fileName, Charset charset, boolean append ) throws IOException { return delegate.openAsWriter( fileName, charset, append ); }
@Override public void copyFile( File from, File to ) throws IOException { delegate.copyFile( from, to ); }
@Override public long lastModifiedTime( File file ) { return delegate.lastModifiedTime( file ); }
@Override public OutputStream openAsOutputStream( File fileName, boolean append ) throws IOException { return FileUtils.openAsOutputStream( path( fileName ), append ); }
@Override public InputStream openAsInputStream( File fileName ) throws IOException { return FileUtils.openAsInputStream( path( fileName ) ); }
@Override public Stream<FileHandle> streamFilesRecursive( File directory ) throws IOException { return StreamFilesRecursive.streamFilesRecursive( directory, this ); }
@Override public FileVisitResult visitFileFailed( Path file, IOException e ) throws IOException { if ( e != null ) { throw e; } return super.visitFileFailed( file, null ); }