@Override public void deleteFileOrThrow( File file ) throws IOException { Files.delete( path( file ) ); }
@Override public long getFileSize( File fileName ) { try { return Files.size( path( fileName ) ); } catch ( IOException e ) { return 0; } }
@Override public void mkdirs( File fileName ) throws IOException { Files.createDirectories( path( fileName ) ); }
@Override public boolean fileExists( File file ) { return Files.exists( path( file ) ); }
@Override public boolean isDirectory( File file ) { return Files.isDirectory( path( file ) ); }
@Override public boolean deleteFile( File fileName ) { try { Files.delete( path( fileName ) ); return true; } catch ( IOException e ) { return false; } }
private Path path( File fileName ) { return path( fileName.getPath() ); }
@Override public long lastModifiedTime( File file ) { try { return Files.getLastModifiedTime( path( file ) ).toMillis(); } catch ( IOException e ) { return 0; } }
@Override public void truncate( File path, long size ) throws IOException { try ( FileChannel channel = FileChannel.open( path( path ) ) ) { channel.truncate( size ); } }
@Override public File[] listFiles( File directory ) { try ( Stream<Path> listing = Files.list( path( directory ) ) ) { return listing.map( Path::toFile ).toArray( File[]::new ); } catch ( IOException e ) { return null; } }
@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 boolean mkdir( File fileName ) { if ( !fileExists( fileName ) ) { try { Files.createDirectory( path( fileName ) ); return true; } catch ( IOException ignore ) { } } return false; }
@Override public void deleteRecursively( File directory ) throws IOException { if ( fileExists( directory ) ) { FileUtils.deletePathRecursively( path( directory ) ); } }
@Override public StoreChannel open( File fileName, OpenMode openMode ) throws IOException { return new StoreFileChannel( FileUtils.open( path( fileName ), openMode ) ); }