本文整理汇总了Java中java.nio.file.attribute.BasicFileAttributeView.setTimes方法的典型用法代码示例。如果您正苦于以下问题:Java BasicFileAttributeView.setTimes方法的具体用法?Java BasicFileAttributeView.setTimes怎么用?Java BasicFileAttributeView.setTimes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.nio.file.attribute.BasicFileAttributeView
的用法示例。
在下文中一共展示了BasicFileAttributeView.setTimes方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: postVisitDirectory
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException {
try {
if (copyOptionsSet.contains(COPY_ATTRIBUTES)) {
/*
* Copy file times. Inspired by
* java.nio.file.CopyMoveHelper.copyToForeignTarget()
*/
BasicFileAttributes attrs = readAttributes(dir,
BasicFileAttributes.class, linkOptions);
BasicFileAttributeView view = getFileAttributeView(
toDestination(dir), BasicFileAttributeView.class,
linkOptions);
view.setTimes(attrs.lastModifiedTime(), attrs.lastAccessTime(),
attrs.creationTime());
}
return CONTINUE;
} catch (IOException ex) {
return visitFileFailed(dir, ex);
}
}
示例2: testSetLastModifiedTimeAfterMove
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
@Test
public void testSetLastModifiedTimeAfterMove() throws Exception {
Path path = root.resolve("test");
Files.createFile(path);
BasicFileAttributeView view = Files.getFileAttributeView(path, BasicFileAttributeView.class);
Path movedTo = root.resolve("test2");
Files.move(path, movedTo);
long newModified = roundToSeconds(System.currentTimeMillis()) - 10000;
try {
view.setTimes(FileTime.fromMillis(newModified), null, null);
fail();
} catch (NoSuchFileException e) {
//pass
}
}
示例3: main
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
public static void main( String[] args )
throws IOException {
Path atxt = Paths.get( "a.txt" );
BasicFileAttributes basic = Files.readAttributes( atxt , BasicFileAttributes.class );
FileTime creationTime = basic.creationTime();
FileTime lastAccessTime = basic.lastAccessTime();
FileTime lastModifiedTime = basic.lastModifiedTime();
mostrar( creationTime , lastAccessTime , lastModifiedTime , basic );
System.out.println( "\nsetando os atributos de a.txt para a_copy.txt" );
Path aCopy = Paths.get( "a_copy.txt" );
BasicFileAttributeView basicView = Files.getFileAttributeView( aCopy ,
BasicFileAttributeView.class );
basicView.setTimes( lastModifiedTime , lastAccessTime , creationTime );
basic = Files.readAttributes( aCopy , BasicFileAttributes.class );
creationTime = basic.creationTime();
lastAccessTime = basic.lastAccessTime();
lastModifiedTime = basic.lastModifiedTime();
mostrar( creationTime , lastAccessTime , lastModifiedTime , basic );
}
示例4: setTimes
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
/**
* Sets the {@link Path}'s last modified time and last access time to
* the given valid times.
*
* @param mtime the modification time to set (only if no less than zero).
* @param atime the access time to set (only if no less than zero).
* @throws IOException if setting the times fails.
*/
@Override
public void setTimes(Path p, long mtime, long atime) throws IOException {
try {
BasicFileAttributeView view = Files.getFileAttributeView(
pathToFile(p).toPath(), BasicFileAttributeView.class);
FileTime fmtime = (mtime >= 0) ? FileTime.fromMillis(mtime) : null;
FileTime fatime = (atime >= 0) ? FileTime.fromMillis(atime) : null;
view.setTimes(fmtime, fatime, null);
} catch (NoSuchFileException e) {
throw new FileNotFoundException("File " + p + " does not exist");
}
}
示例5: preVisitDirectory
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
Path resolve = resolve(dir);
if (!Files.exists(resolve)) {
Files.createDirectories(resolve);
BasicFileAttributeView view = Files.getFileAttributeView(resolve, BasicFileAttributeView.class);
view.setTimes(attrs.lastModifiedTime(), attrs.lastAccessTime(), attrs.creationTime());
}
return FileVisitResult.CONTINUE;
}
示例6: setAttributes
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
@Override
public void setAttributes(File downloadFile, Date created, Date lastModified) throws IOException {
BasicFileAttributeView attributes = Files.getFileAttributeView(downloadFile.toPath(), BasicFileAttributeView.class);
FileTime createdFt = FileTime.fromMillis(created.getTime());
FileTime lastModifiedFt = FileTime.fromMillis(lastModified.getTime());
attributes.setTimes(lastModifiedFt, lastModifiedFt, createdFt);
}
示例7: setTimes
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
public static void setTimes(Path path, Date lastModifiedTime, Date lastAccessTime, Date creationTIme) throws IOException {
BasicFileAttributeView attrs = Files.getFileAttributeView(path, BasicFileAttributeView.class);
attrs.setTimes(
(lastModifiedTime == null) ? null : FileTime.fromMillis(lastModifiedTime.getTime()),
(lastAccessTime == null) ? null : FileTime.fromMillis(lastAccessTime.getTime()),
(creationTIme == null) ? null : FileTime.fromMillis(creationTIme.getTime())
);
}
示例8: setFileTimes
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
/**
* Restore the creation time , access time and modified time to local
*
* @param filePath path of local file
* @param creationTime creation time got from server
* @param lastModifiedTime modified time got from server
* @param lastAccessedTime last aceess time got from server
*/
private void setFileTimes(final String filePath,
final String creationTime,
final String lastModifiedTime,
final String lastAccessedTime)
throws IOException
{
final BasicFileAttributeView attributes = Files.getFileAttributeView(Paths.get(filePath), BasicFileAttributeView.class);
final FileTime timeCreation = FileTime.fromMillis(Long.parseLong(creationTime));
final FileTime timeModified = FileTime.fromMillis(Long.parseLong(lastModifiedTime));
final FileTime timeAccessed = FileTime.fromMillis(Long.parseLong(lastAccessedTime));
attributes.setTimes(timeModified, timeAccessed, timeCreation);
}
示例9: 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));
}
示例10: setFileCreationDate
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
public static void setFileCreationDate(String filePath, Date creationDate) throws IOException
{
BasicFileAttributeView attributes = Files.getFileAttributeView(Paths.get(filePath), BasicFileAttributeView.class);
FileTime time = FileTime.fromMillis(creationDate.getTime());
attributes.setTimes(time, time, time);
}
示例11: setFileCreationDate
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
private void setFileCreationDate(File f, long time) throws IOException {
BasicFileAttributeView attributes = Files.getFileAttributeView(f.toPath(), BasicFileAttributeView.class);
FileTime creationTime = FileTime.fromMillis(time);
attributes.setTimes(creationTime, creationTime, creationTime);
}
示例12: initWriteFile
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
/**
* Creates the new file for writing.
* @param chunk
* @throws IOException
*/
protected void initWriteFile(FileChunk chunk) throws IOException
{
file = new File(dir, chunk.getFileName());
moveExistingFile();
fileName = chunk.getFileName();
BasicFileAttributeView attrView = Files
.getFileAttributeView(file.toPath(), BasicFileAttributeView.class);
attrView.setTimes(FileTime.fromMillis(chunk.getLastModifiedTime()),
FileTime.fromMillis(chunk.getLastAccessTime()),
FileTime.fromMillis(chunk.getCreationTime()));
getFileAttributes();
fileSize = file.length();
}
示例13: 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);
}
示例14: createFileWithDate
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
private Path createFileWithDate(Path path, FileTime todayMinus15) throws IOException {
Path file = Files.createFile(path);
BasicFileAttributeView fileAttributeView = Files.getFileAttributeView(file, BasicFileAttributeView.class);
fileAttributeView.setTimes(todayMinus15, todayMinus15, todayMinus15);
return file;
}
示例15: setTimes
import java.nio.file.attribute.BasicFileAttributeView; //导入方法依赖的package包/类
/**
* Set access time of a file
* @param p The path
* @param mtime Set the modification time of this file.
* The number of milliseconds since Jan 1, 1970.
* A value of -1 means that this call should not set modification time.
* @param atime Set the access time of this file.
* The number of milliseconds since Jan 1, 1970.
* A value of -1 means that this call should not set access time.
*/
@Override
public void setTimes(Path path, long mtime, long atime) throws IOException {
java.nio.file.Path p = FileSystems.getDefault().getPath(pathToFile(path).getAbsolutePath());
BasicFileAttributeView view = Files.getFileAttributeView(p, BasicFileAttributeView.class);
view.setTimes(mtime == -1 ? null : FileTime.fromMillis(mtime),
atime == -1 ? null : FileTime.fromMillis(atime), null);
}