我在windows和unix系统中部署了一个java代码,我必须添加文件权限,以便使用PosixFilePermission将文件移动到特定目录(在unix中).I am。
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 /C中导致UnsupportedOperationException,我必须在windows /c中运行代码时手动注释这段代码。
有任何方法可以检测java中的底层os类型并有条件地执行这段代码吗?
发布于 2017-11-14 07:00:29
如果有Path
对象,则可以使用Path.getFileSystem()
方法获取基础文件系统对象。它有一个FileSystem.supportedFileAttributeViews()
方法。如果文件系统支持POSIX文件属性(和权限),则返回的集合将包含字符串"posix"
。
https://stackoverflow.com/questions/47279223
复制相似问题