javaでファイルオブジェクトを作成するときに、ファイルパーミッションを777(またはその他の任意のパーミッション)に設定するにはどうすればよいですか?
			
			89214 次
		
3 に答える
            27        
        
		
Java SE 7 にはjava.nio.file.attribute.PosixFileAttributesがあり、所有者、グループなどの読み取り、書き込み、および実行権限をきめ細かく制御できます。
import java.nio.file.*;
import java.nio.file.attribute.*;
import java.util.Set;
public class Test {
    public static void main(String[] args) throws Exception {
        Path path = Paths.get("/tmp/test-file.txt");
        if (!Files.exists(path)) Files.createFile(path);
        Set<PosixFilePermission> perms = Files.readAttributes(path,PosixFileAttributes.class).permissions();
        System.out.format("Permissions before: %s%n",  PosixFilePermissions.toString(perms));
        perms.add(PosixFilePermission.OWNER_WRITE);
        perms.add(PosixFilePermission.OWNER_READ);
        perms.add(PosixFilePermission.OWNER_EXECUTE);
        perms.add(PosixFilePermission.GROUP_WRITE);
        perms.add(PosixFilePermission.GROUP_READ);
        perms.add(PosixFilePermission.GROUP_EXECUTE);
        perms.add(PosixFilePermission.OTHERS_WRITE);
        perms.add(PosixFilePermission.OTHERS_READ);
        perms.add(PosixFilePermission.OTHERS_EXECUTE);
        Files.setPosixFilePermissions(path, perms);
        System.out.format("Permissions after:  %s%n",  PosixFilePermissions.toString(perms));
    }
}
これは次のように使用できます。
$ rm -f /tmp/test-file.txt && javac Test.java && java Test
Permissions before: rw-r--r--
Permissions after:  rwxrwxrwx
    于 2011-06-03T23:29:15.353   に答える
    
    
            25        
        
		
3 つの方法が利用可能です。
setReadalble(boolean boolean) 
setWritable(boolean,boolean) 
setExecutable(boolean,boolean)
これにより、ファイルが「0777」に設定されます
String path = "SOME/PATH";
final File file = new File(path);
file.setReadable(true, false);
file.setExecutable(true, false);
file.setWritable(true, false);
    于 2011-06-03T23:23:52.733   に答える
    
    
            17        
        
		
umask(2)JVM を開始する前にを設定する0と、作成されるすべてのファイルとディレクトリは、全員の完全な権限で作成されます。これはおそらく悪い考えです。
ファイルが作成された後File.setReadable()、 API を使用してモード ビットをいじることができます。File.setWritableアクセス許可を付与する場合は、多くの場合、これで十分です。他のユーザーからアクセス許可を削除しようとしている場合は、最初からアクセス許可を非常に制限的に設定する必要があります。(umask(0777)JVMを起動する前に、必要な場所にパーミッションを正確に追加してください。)
于 2011-06-03T23:21:52.390   に答える