@Override public <T extends BasicFileAttributes> T readAttributes() throws IOException { if (attrs == null) { final File file = path.toFile(); this.attrs = new BasicFileAttributesImpl(path.toString(), new FileTimeImpl(file.lastModified()), null, null, new LazyAttrLoader<Long>() { private Long size = null; @Override public Long get() { if (size == null) { size = file.length(); } return size; } }, file.isFile(), file.isDirectory()); } return (T) attrs; }
@Test public void checkReadAttributesGeneral() throws IOException { final SimpleFileSystemProvider fsProvider = new SimpleFileSystemProvider(); final File tempFile = File.createTempFile("foo", "bar"); final Path path = GeneralPathImpl.newFromFile(fsProvider.getFileSystem(URI.create("file:///")), tempFile); final BasicFileAttributesImpl attrs = fsProvider.readAttributes(path, BasicFileAttributesImpl.class); assertThat(attrs).isNotNull(); assertThat(attrs.isRegularFile()).isTrue(); assertThat(attrs.isDirectory()).isFalse(); assertThat(attrs.isSymbolicLink()).isFalse(); assertThat(attrs.isOther()).isFalse(); assertThat(attrs.size()).isEqualTo(0L); }
@Test public void checkReadAttributesGeneral() throws IOException { final SimpleFileSystemProvider fsProvider = new SimpleFileSystemProvider(); final File tempFile = File.createTempFile("foo", "bar"); final Path path = GeneralPathImpl.newFromFile(fsProvider.getFileSystem(URI.create("file:///")), tempFile); final BasicFileAttributesImpl attrs = fsProvider.readAttributes(path, BasicFileAttributesImpl.class); assertThat(attrs).isNotNull(); assertThat(attrs.isRegularFile()).isTrue(); assertThat(attrs.isDirectory()).isFalse(); assertThat(attrs.isSymbolicLink()).isFalse(); assertThat(attrs.isOther()).isFalse(); assertThat(attrs.size()).isEqualTo(0L); }
@Test public void readAttributesGeneral() { final Path path = Files.createTempFile("foo", "bar"); final BasicFileAttributesImpl attrs = Files.readAttributes(path, BasicFileAttributesImpl.class); assertThat(attrs).isNotNull(); assertThat(attrs.isRegularFile()).isTrue(); assertThat(attrs.isDirectory()).isFalse(); assertThat(attrs.isSymbolicLink()).isFalse(); assertThat(attrs.isOther()).isFalse(); assertThat(attrs.size()).isEqualTo(0L); }
@Override public <T extends BasicFileAttributes> T readAttributes() throws IOException { if (attrs == null) { final File file = path.toFile(); this.attrs = new BasicFileAttributesImpl(path.toString(), new FileTimeImpl(file.lastModified()), null, null, new LazyAttrLoader<Long>() { private Long size = null; @Override public Long get() { if (size == null) { size = file.length(); } return size; } }, file.isFile(), file.isDirectory()); } return (T) attrs; }