本文整理匯總了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);
}