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); }