Example usage for java.nio.file.attribute BasicFileAttributes lastModifiedTime

List of usage examples for java.nio.file.attribute BasicFileAttributes lastModifiedTime

Introduction

In this page you can find the example usage for java.nio.file.attribute BasicFileAttributes lastModifiedTime.

Prototype

FileTime lastModifiedTime();

Source Link

Document

Returns the time of last modification.

Usage

From source file:org.duracloud.retrieval.mgmt.RetrievalWorkerTest.java

@Test
public void testRetrieveToFile() throws Exception {
    RetrievalWorker worker = createRetrievalWorker(true);
    File localFile = new File(tempDir, "retrieve-to-file-test");
    assertFalse(localFile.exists());/*from   w  w  w  .  j  a v  a 2 s . c om*/

    worker.retrieveToFile(localFile, null);
    assertTrue(localFile.exists());

    // Test timestamps
    BasicFileAttributes fileAttributes = Files.readAttributes(localFile.toPath(), BasicFileAttributes.class);
    assertEquals(testTime, fileAttributes.creationTime().toMillis());
    assertEquals(testTime, fileAttributes.lastAccessTime().toMillis());
    assertEquals(testTime, fileAttributes.lastModifiedTime().toMillis());

    // Test file value
    String fileValue = FileUtils.readFileToString(localFile);
    assertEquals(fileValue, contentValue);

    // Test failure
    worker = createBrokenRetrievalWorker(true);
    localFile = new File(tempDir, "retrieve-to-file-failure-test");
    assertFalse(localFile.exists());

    try {
        worker.retrieveToFile(localFile, null);
        fail("Exception expected with non-matching checksum");
    } catch (IOException expected) {
        assertNotNull(expected);
    }
}

From source file:se.trixon.filebydate.Operation.java

private Date getDate(File sourceFile) throws IOException, ImageProcessingException {
    Date date = new Date(System.currentTimeMillis());
    DateSource dateSource = mProfile.getDateSource();

    if (dateSource == DateSource.FILE_CREATED) {
        BasicFileAttributes attr = Files.readAttributes(sourceFile.toPath(), BasicFileAttributes.class);
        date = new Date(attr.creationTime().toMillis());
    } else if (dateSource == DateSource.FILE_MODIFIED) {
        BasicFileAttributes attr = Files.readAttributes(sourceFile.toPath(), BasicFileAttributes.class);
        date = new Date(attr.lastModifiedTime().toMillis());
    } else if (dateSource == DateSource.EXIF_ORIGINAL) {
        Metadata metadata;//from  w ww.  j  ava 2s.  c om
        Directory directory = null;

        try {
            metadata = ImageMetadataReader.readMetadata(sourceFile);
            directory = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
            date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
        } catch (NullPointerException | ImageProcessingException ex) {
            String message;
            if (directory == null) {
                message = String.format(Dict.Dialog.ERROR_EXIF_NOT_FOUND.toString(),
                        sourceFile.getAbsolutePath());
            } else {
                message = String.format(Dict.Dialog.ERROR_FILE_FORMAT_NOT_SUPPORTED.toString(),
                        sourceFile.getAbsolutePath());
            }

            throw new ImageProcessingException(message);
        }
    }

    return date;
}

From source file:com.github.zhanhb.ckfinder.download.PathPartial.java

/**
 * Check if the if-unmodified-since condition is satisfied.
 *
 * @param request The servlet request we are processing
 * @param attr File attributes/*from   ww w .  j a v a 2 s.  co  m*/
 */
private void checkIfUnmodifiedSince(HttpServletRequest request, BasicFileAttributes attr) {
    if (request.getHeader(HttpHeaders.IF_MATCH) == null) {
        try {
            long lastModified = attr.lastModifiedTime().toMillis();
            long headerValue = request.getDateHeader(HttpHeaders.IF_UNMODIFIED_SINCE);
            if (headerValue != -1 && lastModified >= headerValue + 1000) {
                // The entity has not been modified since the date
                // specified by the client. This is not an error case.
                throw new UncheckException(HttpServletResponse.SC_PRECONDITION_FAILED);
            }
        } catch (IllegalArgumentException ex) {
            throw new UncheckException(HttpServletResponse.SC_PRECONDITION_FAILED);
        }
    }
}

From source file:de.micromata.genome.logging.spi.ifiles.IndexedWriter.java

public boolean moveExistantLogFiles(IndexFileLoggingImpl logger) throws IOException {
    //    File logFile = new File(logger.getBaseFileName() + ".log");
    //    File idxFile = new File(logger.getBaseFileName() + ".idx");
    if (logFile.exists() == false && indexFile.exists() == false) {
        return true;
    }//from  ww w.  j av a 2  s. c  o  m
    BasicFileAttributes attributes;
    if (logFile.exists() == true) {
        attributes = Files.readAttributes(Paths.get(logFile.getAbsolutePath()), BasicFileAttributes.class);
    } else {
        attributes = Files.readAttributes(Paths.get(indexFile.getAbsolutePath()), BasicFileAttributes.class);
    }
    boolean success = true;
    String suffix = getFileDateSuffix(attributes.lastModifiedTime().toMillis());
    if (logFile.exists() == true) {
        File nf = new File(logFile.getParentFile(), logger.getBaseFileName() + suffix + ".log");
        success &= logFile.renameTo(nf);
    }
    if (indexFile.exists() == true) {
        File nf = new File(indexFile.getParentFile(), logger.getBaseFileName() + suffix + ".idx");
        boolean ixren = indexFile.renameTo(nf);
        if (ixren == true) {
            logger.indexDirectory.renameFile(indexFile, nf);
        }
        success &= ixren;
    }

    return true;
}

From source file:org.duracloud.retrieval.mgmt.RetrievalWorkerTest.java

@Test
public void testApplyTimestamps() throws Exception {
    String time1 = DateUtil.convertToStringLong(testTime + 100000);
    String time2 = DateUtil.convertToStringLong(testTime + 200000);
    String time3 = DateUtil.convertToStringLong(testTime + 300000);
    Map<String, String> props = new HashMap<>();
    props.put(ContentStore.CONTENT_FILE_CREATED, time1);
    props.put(ContentStore.CONTENT_FILE_ACCESSED, time2);
    props.put(ContentStore.CONTENT_FILE_MODIFIED, time3);

    ContentStream content = new ContentStream(null, props);

    File localFile = new File(tempDir, "timestamp-test");
    FileUtils.writeStringToFile(localFile, contentValue);

    // Check that initial timestamps are current
    BasicFileAttributes fileAttributes = Files.readAttributes(localFile.toPath(), BasicFileAttributes.class);
    long now = System.currentTimeMillis();
    assertTrue(isTimeClose(fileAttributes.creationTime().toMillis(), now));
    assertTrue(isTimeClose(fileAttributes.lastAccessTime().toMillis(), now));
    assertTrue(isTimeClose(fileAttributes.lastModifiedTime().toMillis(), now));

    RetrievalWorker worker = createRetrievalWorker(true);
    worker.applyTimestamps(content, localFile);

    // Verify that timestamps were set
    fileAttributes = Files.readAttributes(localFile.toPath(), BasicFileAttributes.class);
    long creationTime = fileAttributes.creationTime().toMillis();
    long lastAccessTime = fileAttributes.lastAccessTime().toMillis();
    long lastModifiedTime = fileAttributes.lastModifiedTime().toMillis();

    assertFalse(isTimeClose(creationTime, now));
    assertFalse(isTimeClose(lastAccessTime, now));
    assertFalse(isTimeClose(lastModifiedTime, now));
    assertTrue(testTime + 100000 == creationTime || // windows
            testTime + 300000 == creationTime); // linux
    assertEquals(testTime + 200000, lastAccessTime);
    assertEquals(testTime + 300000, lastModifiedTime);
}

From source file:com.spectralogic.ds3client.metadata.WindowsMetadataRestore_Test.java

@Test
public void restoreFileTimes_Test() throws Exception {
    final BasicHeader basicHeader[] = new BasicHeader[3];

    final Path filePath = ResourceUtils.loadFileResource(FILE_NAME);

    final BasicFileAttributes attr = Files.readAttributes(filePath, BasicFileAttributes.class);
    basicHeader[0] = new BasicHeader(METADATA_PREFIX + MetadataKeyConstants.KEY_CREATION_TIME,
            String.valueOf(attr.creationTime().toMillis()));
    basicHeader[1] = new BasicHeader(METADATA_PREFIX + MetadataKeyConstants.KEY_ACCESS_TIME,
            String.valueOf(attr.lastAccessTime().toMillis()));
    basicHeader[2] = new BasicHeader(METADATA_PREFIX + MetadataKeyConstants.KEY_LAST_MODIFIED_TIME,
            String.valueOf(attr.lastModifiedTime().toMillis()));
    final Metadata metadata = genMetadata(basicHeader);
    final WindowsMetadataRestore windowsMetadataRestore = new WindowsMetadataRestore(metadata,
            filePath.toString(), MetaDataUtil.getOS());
    windowsMetadataRestore.restoreFileTimes();
    final BasicFileAttributes fileAttributes = Files.readAttributes(filePath, BasicFileAttributes.class);
    Assert.assertEquals(String.valueOf(fileAttributes.creationTime().toMillis()),
            String.valueOf(basicHeader[0].getValue()));
    Assert.assertEquals(String.valueOf(fileAttributes.lastModifiedTime().toMillis()),
            String.valueOf(basicHeader[2].getValue()));
}

From source file:org.cryptomator.cryptofs.CryptoFileSystemImpl.java

private void copyAttributes(Path src, Path dst) throws IOException {
    Set<Class<? extends FileAttributeView>> supportedAttributeViewTypes = fileStore
            .supportedFileAttributeViewTypes();
    if (supportedAttributeViewTypes.contains(BasicFileAttributeView.class)) {
        BasicFileAttributes srcAttrs = Files.readAttributes(src, BasicFileAttributes.class);
        BasicFileAttributeView dstAttrView = Files.getFileAttributeView(dst, BasicFileAttributeView.class);
        dstAttrView.setTimes(srcAttrs.lastModifiedTime(), srcAttrs.lastAccessTime(), srcAttrs.creationTime());
    }//ww  w.  j a va  2s .c o m
    if (supportedAttributeViewTypes.contains(FileOwnerAttributeView.class)) {
        FileOwnerAttributeView srcAttrView = Files.getFileAttributeView(src, FileOwnerAttributeView.class);
        FileOwnerAttributeView dstAttrView = Files.getFileAttributeView(dst, FileOwnerAttributeView.class);
        dstAttrView.setOwner(srcAttrView.getOwner());
    }
    if (supportedAttributeViewTypes.contains(PosixFileAttributeView.class)) {
        PosixFileAttributes srcAttrs = Files.readAttributes(src, PosixFileAttributes.class);
        PosixFileAttributeView dstAttrView = Files.getFileAttributeView(dst, PosixFileAttributeView.class);
        dstAttrView.setGroup(srcAttrs.group());
        dstAttrView.setPermissions(srcAttrs.permissions());
    }
    if (supportedAttributeViewTypes.contains(DosFileAttributeView.class)) {
        DosFileAttributes srcAttrs = Files.readAttributes(src, DosFileAttributes.class);
        DosFileAttributeView dstAttrView = Files.getFileAttributeView(dst, DosFileAttributeView.class);
        dstAttrView.setArchive(srcAttrs.isArchive());
        dstAttrView.setHidden(srcAttrs.isHidden());
        dstAttrView.setReadOnly(srcAttrs.isReadOnly());
        dstAttrView.setSystem(srcAttrs.isSystem());
    }
}

From source file:com.arpnetworking.tsdcore.tailer.StatefulTailer.java

private Attributes getAttributes(final File file, final Optional<Long> lastChecked) throws IOException {
    final BasicFileAttributes attributes = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
    LOGGER.trace(String.format("File attributes; file=%s, lastModifiedTime=%d, size=%d", file,
            Long.valueOf(attributes.lastModifiedTime().toMillis()), Long.valueOf(attributes.size())));

    return new Attributes(attributes.size(), attributes.lastModifiedTime().toMillis(), lastChecked.isPresent()
            && attributes.lastModifiedTime().toMillis() > lastChecked.get().longValue());
}

From source file:com.spectralogic.ds3client.metadata.PosixMetadataRestore_Test.java

@Test
public void restoreFileTimes_Test() throws Exception {
    final BasicHeader basicHeader[] = new BasicHeader[3];
    final BasicFileAttributes attr = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
    basicHeader[0] = new BasicHeader(
            MetadataKeyConstants.METADATA_PREFIX + MetadataKeyConstants.KEY_CREATION_TIME,
            String.valueOf(attr.creationTime().toMillis()));
    basicHeader[1] = new BasicHeader(
            MetadataKeyConstants.METADATA_PREFIX + MetadataKeyConstants.KEY_ACCESS_TIME,
            String.valueOf(attr.lastAccessTime().toMillis()));
    basicHeader[2] = new BasicHeader(
            MetadataKeyConstants.METADATA_PREFIX + MetadataKeyConstants.KEY_LAST_MODIFIED_TIME,
            String.valueOf(attr.lastModifiedTime().toMillis()));
    final Metadata metadata = genMetadata(basicHeader);
    final PosixMetadataRestore posixMetadataRestore = new PosixMetadataRestore(metadata, file.getPath(),
            MetaDataUtil.getOS());/*from w w  w  .j  av  a  2  s.c o  m*/
    posixMetadataRestore.restoreFileTimes();
    final BasicFileAttributes fileAttributes = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
    Assert.assertEquals(String.valueOf(fileAttributes.creationTime().toMillis()),
            String.valueOf(basicHeader[0].getValue()));
    Assert.assertEquals(String.valueOf(fileAttributes.lastModifiedTime().toMillis()),
            String.valueOf(basicHeader[2].getValue()));
}

From source file:org.panbox.desktop.common.vfs.backend.generic.GenericVirtualFileImpl.java

@Override
public long getLastWriteTime() {
    // return file.lastModified();
    try {/*  w  ww. j av a  2  s . c  o m*/
        BasicFileAttributes attr = Files.readAttributes(file.toPath(), BasicFileAttributes.class,
                LinkOption.NOFOLLOW_LINKS);
        return attr.lastModifiedTime().toMillis();
    } catch (IOException e) {
        logger.error("Error in getLastWriteTime()", e);
        return 0;
    }
}