Рубрики
Без рубрики

Руководство По API Атрибутов Файлов NIO2

Краткое и практическое руководство по атрибуту файла NIO2 в Java

Автор оригинала: baeldung.

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();

Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:

Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:

Iterable fileStores = 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);

Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:

List attribList = 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);

Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:

Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов:

Мы можем изучить основные атрибуты домашнего местоположения пользователя на текущем компьютере, создав путь к ДОМУ и получив его представление основных атрибутов: