示例#1
0
  MetaDataFileInfo(String fileName, MetaDataDedupFile mf) {
    this.fileName = fileName;
    this.mf = mf;
    this.isDirectory = mf.isDirectory();
    fileIndex = getNextFileIndex();
    Path file = Paths.get(mf.getPath());
    try {
      DosFileAttributes attr = Files.readAttributes(file, DosFileAttributes.class);
      if (attr.isArchive()) fileAttribute |= FileAttributeFlags.FILE_ATTRIBUTE_ARCHIVE.getValue();
      if (attr.isDirectory())
        fileAttribute |= FileAttributeFlags.FILE_ATTRIBUTE_DIRECTORY.getValue();
      if (attr.isHidden()) fileAttribute |= FileAttributeFlags.FILE_ATTRIBUTE_HIDDEN.getValue();
      if (attr.isReadOnly()) fileAttribute |= FileAttributeFlags.FILE_ATTRIBUTE_READONLY.getValue();
      if (attr.isRegularFile())
        fileAttribute |= FileAttributeFlags.FILE_ATTRIBUTE_NORMAL.getValue();
      if (attr.isSymbolicLink())
        fileAttribute |= FileAttributeFlags.FILE_ATTRIBUTE_REPARSE_POINT.getValue();
      if (attr.isSystem()) fileAttribute |= FileAttributeFlags.FILE_ATTRIBUTE_SYSTEM.getValue();
    } catch (IOException | UnsupportedOperationException x) {
      SDFSLogger.getLog().error("attributes could not be created for " + this.fileName, x);
    }

    creationTime = FileTimeUtils.toFileTime(new Date(0));
    lastAccessTime = FileTimeUtils.toFileTime(new Date(mf.getLastAccessed()));
    lastWriteTime = FileTimeUtils.toFileTime(new Date(mf.lastModified()));
    fileSize = mf.length();
    SDFSLogger.getLog().debug("created file info for " + fileName);
  }