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".