Esempio n. 1
0
  public static void writeFileKey(Path filePath, String fileKey) {
    if (!OSDetector.isWindows()) {
      return;
    }

    File file = filePath.toFile();

    if (!file.canWrite()) {
      file.setWritable(true);
    }

    UserDefinedFileAttributeView userDefinedFileAttributeView =
        Files.getFileAttributeView(filePath, UserDefinedFileAttributeView.class);

    try {
      userDefinedFileAttributeView.write("fileKey", _CHARSET.encode(CharBuffer.wrap(fileKey)));
    } catch (Exception e) {
      _logger.error(e.getMessage(), e);
    }
  }
Esempio n. 2
0
  public static String getFileKey(Path filePath) {
    if (!Files.exists(filePath)) {
      return "";
    }

    try {
      if (OSDetector.isWindows()) {
        UserDefinedFileAttributeView userDefinedFileAttributeView =
            Files.getFileAttributeView(filePath, UserDefinedFileAttributeView.class);

        List<String> list = userDefinedFileAttributeView.list();

        if (!list.contains("fileKey")) {
          return "";
        }

        ByteBuffer byteBuffer = ByteBuffer.allocate(userDefinedFileAttributeView.size("fileKey"));

        userDefinedFileAttributeView.read("fileKey", byteBuffer);

        CharBuffer charBuffer = _CHARSET.decode((ByteBuffer) byteBuffer.flip());

        return charBuffer.toString();
      } else {
        BasicFileAttributes basicFileAttributes =
            Files.readAttributes(filePath, BasicFileAttributes.class);

        Object fileKey = basicFileAttributes.fileKey();

        return fileKey.toString();
      }
    } catch (Exception e) {
      _logger.error(e.getMessage(), e);

      return "";
    }
  }