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);
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:
Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов: