PosixFilePermission 在 java 中导致 UnsupportedOperationException
PosixFilePermission causing UnsupportedOperationException in java
我在 windows 和 unix system.I 中部署了一个 java 代码 system.I 必须添加文件权限才能将文件移动到特定目录(在 unix 中)。我是为此使用 PosixFilePermission。
file1 = new File( expFilePath+ "/" + creationDate);
file1.mkdir();
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
try {
Files.setPosixFilePermissions(file1.toPath(), perms);
} catch (IOException e1) {
e1.printStackTrace();
}
上面的代码在 unix 中 运行 是正确的,但在 windows m/c 中导致 UnsupportedOperationException。我必须手动评论这篇文章代码而 运行 windows m/c.
中的代码
有什么方法可以检测 java 中的底层 os 类型并有条件地执行此代码块?
如果你有一个Path
对象,你可以使用Path.getFileSystem()
method to obtain the underlying file system object. It has a FileSystem.supportedFileAttributeViews()
方法。如果文件系统支持 POSIX 文件属性(和权限),则返回的集合将包含字符串 "posix"
.
我在 windows 和 unix system.I 中部署了一个 java 代码 system.I 必须添加文件权限才能将文件移动到特定目录(在 unix 中)。我是为此使用 PosixFilePermission。
file1 = new File( expFilePath+ "/" + creationDate);
file1.mkdir();
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
try {
Files.setPosixFilePermissions(file1.toPath(), perms);
} catch (IOException e1) {
e1.printStackTrace();
}
上面的代码在 unix 中 运行 是正确的,但在 windows m/c 中导致 UnsupportedOperationException。我必须手动评论这篇文章代码而 运行 windows m/c.
中的代码有什么方法可以检测 java 中的底层 os 类型并有条件地执行此代码块?
如果你有一个Path
对象,你可以使用Path.getFileSystem()
method to obtain the underlying file system object. It has a FileSystem.supportedFileAttributeViews()
方法。如果文件系统支持 POSIX 文件属性(和权限),则返回的集合将包含字符串 "posix"
.