我正在寻找一个代码片段,我必须使用它来更改unix上的文件权限。我的项目运行在java 1.4.2 ..
只需要使用示例代码示例或方法即可。
此致 Senny
答案 0 :(得分:3)
你不是唯一一个: How to change the file's permission and last modified in Java?
如果现有的java.io.File方法不够,原则上可以使用Runtime.exec(“chmod ...”)。但它不便携。
答案 1 :(得分:1)
您还可以查看java.lang.File
的Gnu ClassPath实现他们基于JNI调用实现了该功能:
native/jni/java-io/java_io_VMFile.c:
set_file_permissions: new helper function.
Java_java_io_VMFile_setReadable: new native method to bakcup 1.6 methods
in VMFile.java.
VMFile.java宣布电话:
/**
* Set the write permission of the file.
*/
public static synchronized native boolean setWritable(String path,
boolean writable,
boolean ownerOnly);
native/jni/java-io/java_io_VMFile.c确实实现了所需的功能......
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_setWritable (JNIEnv *env,
jclass clazz __attribute__ ((__unused__)),
jstring name,
jboolean writable,
jboolean ownerOnly)
{
return set_file_permissions (env, name, writable, ownerOnly,
CPFILE_FLAG_WRITE);
}
[...]
result = cpio_chmod (filename, permissions);
所以......如果你真的想要它,可以通过查看source of cpio.c来实现它:它从 libc 标准库调用chmod
({ {3}}确实将其中一些功能移植到Windows)
答案 2 :(得分:0)
为了更清楚:Java 1.6为文件权限引入了像File.canExecute()和File.setExecutable(boolean)这样的getter / setter。因此,一种解决方案是使用最新的JDK而不是您提到的1.4。否则,按照建议,您可以尝试向后移植或调用特定于平台的命令。