1. Обзор
В этой статье мы рассмотрим одну из расширенных функций API файловой системы Java 7 NIO.2, в частности API атрибутов файлов.
Ранее мы рассмотрели API-интерфейсы файлов и путей, если вы хотите сначала углубиться в эти основополагающие элементы.
Все файлы, необходимые для обработки операций файловой системы, собраны в пакет java.nio.file :
import java.nio.file.*;
2. Основные атрибуты файла
Давайте начнем с высокоуровневого представления основных атрибутов, общих для всех файловых систем, предоставляемых BasicFileAttributeView , в котором хранятся все обязательные и необязательные видимые атрибуты файлов.
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
String HOME = System.getProperty("user.home"); Path home = Paths.get(HOME); BasicFileAttributeView basicView = Files.getFileAttributeView(home, BasicFileAttributeView.class);
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
BasicFileAttributes basicAttribs = basicView.readAttributes();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
@Test public void givenPath_whenGetsFileSize_thenCorrect() { long size = basicAttribs.size(); assertTrue(size > 0); }
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
@Test public void givenPath_whenChecksIfDirectory_thenCorrect() { boolean isDir = basicAttribs.isDirectory(); assertTrue(isDir); }
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
@Test public void givenPath_whenChecksIfFile_thenCorrect() { boolean isFile = basicAttribs.isRegularFile(); assertFalse(isFile); }
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
@Test public void givenPath_whenChecksIfSymLink_thenCorrect() { boolean isSymLink = basicAttribs.isSymbolicLink(); assertFalse(isSymLink); }
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
@Test public void givenPath_whenChecksIfOther_thenCorrect() { boolean isOther = basicAttribs.isOther(); assertFalse(isOther); }
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
FileTime created = basicAttribs.creationTime();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
FileTime modified = basicAttribs.lastModifiedTime();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
FileTime accessed = basicAttribs.lastAccessTime();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
@Test public void givenFileTimes_whenComparesThem_ThenCorrect() { FileTime created = basicAttribs.creationTime(); FileTime modified = basicAttribs.lastModifiedTime(); FileTime accessed = basicAttribs.lastAccessTime(); assertTrue(0 >= created.compareTo(accessed)); assertTrue(0 <= modified.compareTo(created)); assertTrue(0 == created.compareTo(created)); }
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
accessed.to(TimeUnit.SECONDS); accessed.to(TimeUnit.HOURS); accessed.toMillis();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
accessed.toString();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
2016-11-24T07:52:53.376Z
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
FileTime newAccessTime = FileTime.fromMillis( basicAttribs.lastAccessTime().toMillis() + 60000); basicView.setTimes(null, newAccessTime , null);
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Path file = Paths.get("file"); FileStore store = Files.getFileStore(file);
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
long total = store.getTotalSpace();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
long used = store.getTotalSpace() - store.getUnallocatedSpace();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
IterablefileStores = FileSystems.getDefault().getFileStores();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
for (FileStore fileStore : fileStores) { long totalSpace = fileStore.getTotalSpace(); long unAllocated = fileStore.getUnallocatedSpace(); long usable = fileStore.getUsableSpace(); }
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Path path = Paths.get(HOME); FileOwnerAttributeView ownerView = Files.getFileAttributeView( attribPath, FileOwnerAttributeView.class);
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
UserPrincipal owner = ownerView.getOwner();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
String ownerName = owner.toString();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Path path = Paths.get("somefile"); UserDefinedFileAttributeView userDefView = Files.getFileAttributeView( attribPath, UserDefinedFileAttributeView.class);
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
ListattribList = userDefView.list();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
String name = "attrName"; String value = "attrValue"; userDefView.write(name, Charset.defaultCharset().encode(value));
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
ByteBuffer attrValue = ByteBuffer.allocate(userView.size(attrName)); userDefView.read(attribName, attribValue); attrValue.flip(); String attrValue = Charset.defaultCharset().decode(attrValue).toString();
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
userDefView.delete(attrName);
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов: