本文整理匯總了Java中java.nio.file.attribute.BasicFileAttributeView.readAttributes方法的典型用法代碼示例。如果您正苦於以下問題:Java BasicFileAttributeView.readAttributes方法的具體用法?Java BasicFileAttributeView.readAttributes怎麽用?Java BasicFileAttributeView.readAttributes使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類java.nio.file.attribute.BasicFileAttributeView
的用法示例。
在下文中一共展示了BasicFileAttributeView.readAttributes方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: basicAttributes
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
/**
* Get POSIX attributes for file.
*
* @param file File.
* @return BasicFileAttributes.
*/
@Nullable public static BasicFileAttributes basicAttributes(File file) {
BasicFileAttributes attrs = null;
try {
BasicFileAttributeView view = Files.getFileAttributeView(file.toPath(), BasicFileAttributeView.class);
if (view != null)
attrs = view.readAttributes();
}
catch (IOException e) {
throw new IgfsException("Failed to read basic file attributes: " + file.getAbsolutePath(), e);
}
return attrs;
}
示例2: testGetAttributesThenMoveFile
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
@Test
public void testGetAttributesThenMoveFile() throws Exception {
long start = System.currentTimeMillis();
Path parent = root.resolve("test");
Files.createFile(parent);
BasicFileAttributeView attributes = Files.getFileAttributeView(parent, BasicFileAttributeView.class);
assertTrue(attributes.readAttributes().creationTime().toMillis() > start - 6000);
Files.move(parent, parent.resolveSibling("test2"));
try
{
attributes.readAttributes();
fail();
} catch(NoSuchFileException e) {
//pass
}
}
示例3: getLastModified
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
@Override
public long getLastModified(final Object templateSource) {
Path templateAsPath = (Path) templateSource;
BasicFileAttributeView basicView = Files.getFileAttributeView(templateAsPath,
BasicFileAttributeView.class);
// This attribute view is perhaps not available in this system
if (basicView != null) {
BasicFileAttributes basic;
try {
basic = basicView.readAttributes();
} catch (IOException e) {
return -1;
}
return basic.lastModifiedTime().toMillis();
} else {
return -1;
}
}
示例4: getModDate
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
public static FileTime getModDate (Path path) throws IOException {
BasicFileAttributeView basicView =Files.getFileAttributeView (path, BasicFileAttributeView.class,LinkOption.NOFOLLOW_LINKS);
if (basicView != null) {
BasicFileAttributes basic = basicView.readAttributes (); // Get the
// attributes
// of the view
FileTime result = basic.lastModifiedTime ();
if (result == null)
throw new IOException ("Attribute lastModifiedTime() is not suupported on file: " + path);
else {
if (log.isDebugEnabled ())
log.debug ("File " + path + "last modified at : " + result);
return result;
}
} else {
throw new IOException ("File not found: " + path);
}
}
示例5: getFormattedDate
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
/**
* Returns formatted date of creation for current file.
* @param path Current file.
* @return Formatted date.
*/
private String getFormattedDate(Path path) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
BasicFileAttributeView faView = Files.getFileAttributeView(path,
BasicFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
BasicFileAttributes attributes = faView.readAttributes();
FileTime fileTime = attributes.creationTime();
return sdf.format(new Date(fileTime.toMillis()));
} catch (IOException e) {
return "";
}
}
示例6: main
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
public static void main(String[] args) {
try {
Path path = Paths.get("metadata.txt");
Files.deleteIfExists(path);
Files.createFile(path);
BasicFileAttributeView basicView = Files.getFileAttributeView(path, BasicFileAttributeView.class);
BasicFileAttributes basicAttributes = basicView.readAttributes();
boolean isDirectory = basicAttributes.isDirectory();
FileTime lastModifiedTime = basicAttributes.lastModifiedTime();
System.out.println(isDirectory);
System.out.println(lastModifiedTime);
PosixFileAttributeView posixView = Files.getFileAttributeView(path, PosixFileAttributeView.class);
PosixFileAttributes posixAttributes = posixView.readAttributes();
GroupPrincipal group = posixAttributes.group();
Set<PosixFilePermission> permissions = posixAttributes.permissions();
permissions.add(PosixFilePermission.OWNER_EXECUTE);
posixView.setPermissions(permissions);
System.out.println(group);
} catch (IOException e) {
// Log and Handle exception
e.printStackTrace();
}
}
示例7: getDefaultPositionPerFile
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
@Override
protected Long getDefaultPositionPerFile(File file) throws IOException {
if (this.defaultTimestampIsFileUpdated) {
BasicFileAttributeView fileAttributeView = Files.getFileAttributeView(file.toPath(), BasicFileAttributeView.class);
BasicFileAttributes readAttributes = fileAttributeView.readAttributes();
return AbsoluteTimeGranularityUtil.asPosition(new Date(readAttributes.lastModifiedTime().toMillis()));
} else if (this.defaultDate != null) {
return this.defaultDate.getTime();
} else {
return super.getDefaultPositionPerFile(file);
}
}
示例8: getDefaultPositionPerFile
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
@Override
protected Long getDefaultPositionPerFile(File file) throws IOException {
if (this.defaultTimestampIsFileUpdated) {
BasicFileAttributeView fileAttributeView = Files.getFileAttributeView(file.toPath(), BasicFileAttributeView.class);
BasicFileAttributes readAttributes = fileAttributeView.readAttributes();
return AbsoluteTimeGranularityUtil.asPosition(new Date(readAttributes.lastModifiedTime().toMillis()));
} else if (this.defaultDate != null) {
return this.defaultDate.getTime();
} else {
return super.getDefaultPositionPerFile(file);
}
}
示例9: testReadAttributesViewFutureExistingFile
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
@Test
@Category( { Attributes.class, Writable.class } )
public void testReadAttributesViewFutureExistingFile() throws IOException {
BasicFileAttributeView view = FS.provider().getFileAttributeView( absTA(), BasicFileAttributeView.class );
fileTA();
try {
view.readAttributes();
} catch( Exception e ) {
fail( "future files have a view" );
}
}
示例10: getCreationDate
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
/**
* Returns the creation date of the given file or the 1st january 1970
* if an error occured while trying to read the date.
*
* @param file File to access.
* @return Creation date of the given file.
*/
private Date getCreationDate(File file) {
try {
final BasicFileAttributeView view = Files.getFileAttributeView(file.toPath(), BasicFileAttributeView.class);
final BasicFileAttributes attributes = view.readAttributes();
return new Date(attributes.creationTime().toMillis());
} catch(IOException e) {
return new Date(0L);
}
}
示例11: fromFile
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
/**
* Builds the given {@code file} corresponding {@link BackupDTO}.
*
* @param file
* The backup file path.
* @return The given {@code file} corresponding {@link BackupDTO}.
* @throws IOException
* If an I/O error occurs.
* @throws IllegalArgumentException
* If the given {@code file} does not reference a valid backup file.
*/
private BackupDTO fromFile(final Path file) throws IOException {
final String filename = file.getFileName().toString();
final Matcher matcher = BACKUP_ARCHIVE_NAME_PATTERN.matcher(filename);
if (!matcher.matches()) {
throw new IllegalArgumentException("Invalid backup archive file name '" + filename + "'.");
}
final Integer organizationId = Integer.parseInt(matcher.group(1));
final Integer orgUnitId = Integer.parseInt(matcher.group(2));
final LoadingScope loadingScope = LoadingScope.valueOf(matcher.group(3));
final String extension = matcher.group(4);
final BasicFileAttributeView view = Files.getFileAttributeView(file, BasicFileAttributeView.class);
final BasicFileAttributes attributes = view.readAttributes();
final BackupDTO result = new BackupDTO();
result.setOrganizationId(organizationId);
result.setOrgUnitId(orgUnitId);
result.setOrgUnitName(orgUnitDAO.findById(orgUnitId).getFullName());
result.setLoadingScope(loadingScope);
result.setCreationDate(new Date(attributes.creationTime().toMillis()));
result.setArchiveFileName(filename);
result.setRunning(extension.equals(BACKUP_ARCHIVE_TEMP_EXT));
return result;
}
示例12: testView
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
@Test
public void testView() throws IOException {
BasicFileAttributeView view = provider.view(fileLookup(), NO_INHERITED_VIEWS);
assertThat(view).isNotNull();
assertThat(view.name()).isEqualTo("basic");
BasicFileAttributes attrs = view.readAttributes();
assertThat(attrs.fileKey()).isEqualTo(0);
FileTime time = attrs.creationTime();
assertThat(attrs.lastAccessTime()).isEqualTo(time);
assertThat(attrs.lastModifiedTime()).isEqualTo(time);
view.setTimes(null, null, null);
attrs = view.readAttributes();
assertThat(attrs.creationTime()).isEqualTo(time);
assertThat(attrs.lastAccessTime()).isEqualTo(time);
assertThat(attrs.lastModifiedTime()).isEqualTo(time);
view.setTimes(FileTime.fromMillis(0L), null, null);
attrs = view.readAttributes();
assertThat(attrs.creationTime()).isEqualTo(time);
assertThat(attrs.lastAccessTime()).isEqualTo(time);
assertThat(attrs.lastModifiedTime()).isEqualTo(FileTime.fromMillis(0L));
}
示例13: printBasicPathAttributes
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
private int printBasicPathAttributes(FileSystem fileSystem, Path path) {
BasicFileAttributeView fileAttributeView =
fileSystem.provider().getFileAttributeView(path, BasicFileAttributeView.class);
if (fileAttributeView == null) {
System.err.println("Cannot get file attributes for path '" + path.toString() +
"' on filesystem type " + fileSystem.provider().getScheme());
return 0;
}
BasicFileAttributes attributes;
try {
attributes = fileAttributeView.readAttributes();
} catch (IOException e) {
System.err.println("Could not read file attributes for '" + path.toString() + "'");
return 0;
}
DateTimeFormatter dtFormat = ISODateTimeFormat.dateHourMinuteSecondMillis();
StringBuilder listing = new StringBuilder();
listing.append(path.toAbsolutePath().toString());
if (attributes.isDirectory()) {
listing.append(fileSystem.getSeparator());
listing.append(" - ");
} else {
listing.append(" ")
.append(attributes.size())
.append(" ");
}
listing.append(" ");
if (attributes.creationTime() != null) {
listing.append(dtFormat.print(attributes.creationTime().toMillis()));
} else {
listing.append("-");
}
listing.append(" ");
if (attributes.lastModifiedTime() != null) {
listing.append(dtFormat.print(attributes.lastModifiedTime().toMillis()));
} else {
listing.append("-");
}
System.out.println(listing.toString());
return 1;
}
示例14: main
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
public static void main(String[] args) throws IOException {
// 第三個並且是最後一個例子涉及了利用 java.nio.file.attribute 包中的類獲取並設置文件屬性的新的 API。
//
// 新的 API 能夠提供對各種文件屬性的訪問。在以前的 Java 版本中,僅能得到基本的文件屬性集(大小、修改時間、文件是否隱藏、以及它是文件還是目錄)。為了獲取或者修改更多的文件屬性,必須利用運行所在平台特定的本地代碼來實現,這很困難。很幸運的是,Java 7 能夠允許您通過很簡單的方式,利用 java.nio.file.attribute 類來讀取,如果可能,修改擴展的屬性集,完全去掉了這些操作的平台特定屬性。
//
// 在新的 API 中有七個屬性視圖,其中一些特定於操作係統。這些 “ 視圖 ” 類允許您獲取並設置任何關聯的屬性,並且其中每個都具有對應的包含真實屬性信息的屬性類。讓我們依次來看一下。
// AclFileAttributeView 與 AclEntry
//
// AclFileAttributeView 允許您為特定文件設置 ACL 及文件所有者屬性。其 getAcl() 方法返回一個 List of AclEntry 對象,每個對應文件的一個權限集。其 setAcl(List<AclEntry>) 方法允許您修改該訪問列表。這些屬性視圖僅可用於 Microsoft® Windows® 係統。
// BasicFileAttributeView 與 BasicFileAttributes
//
// 這一視圖類允許您獲取一係列 —— 平常的 —— 基本文件屬性,構建於以前的 Java 版本之上。其 readAttributes() 方法返回一個 BasicFileAttributes 實例,該實例包含最後修改時間、最後訪問時間、創建時間、大小、以及文件屬性等細節(常規文件、目錄、符號鏈接、或者其他)。這一屬性視圖在所有平台上均可用。
File attribFile = new File(".");
Path attribPath = attribFile.toPath();
// 為獲取想要的文件屬性視圖,我們在 Path 上使用 getFileAttributeView(Class viewClass) 方法。為獲取 BasicFileAttributeView for attribPath,我們簡單地調用:
BasicFileAttributeView basicFileAttributeView =Files.getFileAttributeView(attribPath, BasicFileAttributeView.class);
// 正如前麵所描述的,為從 BasicFileAttributeView 獲取 BasicFileAttributes,我們隻要調用其 readAttributes() 方法:
BasicFileAttributes basicAttribs = basicFileAttributeView.readAttributes();
// 那麽這樣就可以了,現在已經得到了您所想要的任何基本文件屬性。對於 BasicFileAttributes,隻有創建、最後修改、以及最後訪問時間可被修改(因為改變文件大小或者類型沒有意義)。為改變這些,我們可以使用 java.nio.file.attribute.FileTime 類來創建新的時間,然後在 BasicFileAttributeView 上調用 setTimes() 方法。例如,我們可以不斷地更新文件的最後修改時間。
FileTime newModTime
= FileTime.fromMillis(basicAttribs.lastModifiedTime().toMillis() + 60000);
basicFileAttributeView.setTimes(newModTime, null, null);
// 這兩個 null 指出,我們不想改變這一文件的最後訪問時間或者創建時間。如果以前麵相同的方式再次檢查基本屬性,您會發現最後修改時間已被修改,但是創建時間和最後訪問時間還保持原樣。
// DosFileAttributeView 與 DosFileAttributes
//
// 這一視圖類允許您獲取指定給 DOS 的屬性。(您可能會猜想,這一視圖僅用於 Windows 係統。)其 readAttributes() 方法返回一個 DosFileAttributes 實例,該實例包含有問題的文件是否為隻讀、隱藏、係統文件、以及存檔文件等細節信息。這一視圖還包含針對每個屬性的 set*(boolean) 方法。
// FileOwnerAttributeView 與 UserPrincipal
//
// 這一視圖類允許您獲取並設置特定文件的所有者。其 getOwner()方法返回一個 UserPrincipal(還處於 java.nio.file.attribute 包中),其又具有 getName() 方法,來返回包含所有者名字的 String。該視圖還提供 setOwner(UserPrincipal) 方法用於變更文件所有者。該視圖在所有平台上都可用。
// FileStoreSpaceAttributeView 與 FileStoreSpaceAttributes
//
// 這一用很吸引人的方式命名的類,允許您獲取有關特定文件存儲的信息。其 readAttributes() 方法返回一個包含文件存儲的整個空間、未分配空間、以及已使用空間細節的 FileStoreSpaceAttributes 實例。這一視圖在所有平台上都可用。
// PosixFileAttributeView 與 PosixFileAttributes
//
// 這一視圖類,僅在 UNIX® 係統上可用,允許您獲取並設置指定給 POSIX(Portable Operating System Interface)的屬性。其 readAttributes() 方法返回一個包含有關這一文件的所有者、組所有者、以及這一文件許可(這些細節通常用 UNIX chmod 命令設置)的 PosixFileAttributes 實例。這一視圖還提供 setOwner(UserPrincipal)、 setGroup(GroupPrincipal)、以及 setPermissions(Set<PosixFilePermission>) 來修改這些屬性。
// UserDefinedFileAttributeView 與 String
//
// 這一視圖類,僅可用於 Windows,允許您獲取並設置文件的擴展屬性。 這些屬性跟其他的不同,它們隻是名稱值對,並可按需對其進行設置。 如果想向文件增加一些隱藏的元數據,而不必修改文件內容,這就很有用了。 這一屬性提供 list() 方法,來為相關的文件返回 List of String 擴展屬性的名字。
//
// 有了其名字後,就要獲取特定屬性的內容,這一視圖具有一個 size(String name) 方法來返回屬性值的大小,以及一個 read(String name, ByteBuffer dest) 方法來將屬性值讀取到 ByteBuffer 中。這一視圖還提供 write(String name, ByteBuffer source) 方法來創建或者修改屬性,以及一個 delete(String name) 方法來完全移除現有的屬性。
//
// 這可能是最有趣的新屬性視圖,因為它允許您利用任意 String 名字和 ByteBuffer 值向文件增加屬性。這很對 —— 其值是個 ByteBuffer,因此您可以在這裏存儲任何二進製數據。
UserDefinedFileAttributeView userView
= Files.getFileAttributeView(attribPath, UserDefinedFileAttributeView.class);
// 為獲取用戶為這一文件定義的屬性名,我們在視圖上調用 list() 方法:
List<String> attribList = userView.list();
// 一旦我們擁有了想得到相關值的特定屬性名,就為該值分配一個大小合適的 ByteBuffer,然後調用視圖的 read(String, ByteBuffer) 方法:
//
// ByteBuffer attribValue = ByteBuffer.allocate(userView.size(attribName));
// userView.read(attribName, attribValue);
//
// attribValue 現在包含了為那一特定屬性所存儲的任何數據。 想設置自己的屬性,隻需創建 ByteBuffer 並按需填入數據,然後在視圖上調用 write(String,
// ByteBuffer) 方法:
//
// userView.write(attribName, attribValue);
}
示例15: getBackupFiles
import java.nio.file.attribute.BasicFileAttributeView; //導入方法依賴的package包/類
private HashSet<String> getBackupFiles(final String folder) {
final HashSet<String> backupFiles = new HashSet<>();
final Path validPath = getValidPath(folder);
if (validPath == null) {
return backupFiles;
}
try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(validPath)) {
for (final Path path : directoryStream) {
try {
final BasicFileAttributeView fileAttributesView = Files.getFileAttributeView(
path,
BasicFileAttributeView.class);
final BasicFileAttributes fileAttributes = fileAttributesView.readAttributes();
// ignore not regular files
if (fileAttributes.isRegularFile()) {
backupFiles.add(path.getFileName().toString());
}
} catch (final Exception e) {
// this can occure too often
// TourLogManager.logEx(e);
}
}
} catch (final IOException ex) {
TourLogManager.logEx(ex);
}
return backupFiles;
}