So legen Sie die Dateiberechtigung in Java fest
In Java sind Dateiberechtigungen sehr betriebssystemspezifisch: * nix, NTFS (Windows) und FAT / FAT32 haben alle unterschiedliche Dateiberechtigungen. Java wird mit einer generischen Dateiberechtigung geliefert, um damit umzugehen.
Check if the file permission allow:
-
file.canExecute(); – return true, file is executable; false is not.
-
file.canWrite(); – return true, file is writable; false is not.
-
file.canRead(); – return true, file is readable; false is not.
Set the file permission:
-
file.setExecutable(boolean); – true, allow execute operations; false to disallow it.
-
file.setReadable(boolean); – true, allow read operations; false to disallow it.
-
file.setWritable(boolean); – true, allow write operations; false to disallow it.
In * nix-Systemen müssen Sie möglicherweise weitere Angaben zur Dateiberechtigung konfigurieren, z. B. eine 777-Berechtigung für eine Datei oder ein Verzeichnis festlegen. Java-E / A-Klassen verfügen jedoch nicht über eine Ready-Methode, Sie können jedoch die folgende fehlerhafte Problemumgehung verwenden:
Runtime.getRuntime().exec("chmod 777 file");
Beispiel für Dateiberechtigung
package com.example.file; import java.io.File; import java.io.IOException; public class FilePermissionExample { public static void main( String[] args ) { try { File file = new File("/example/shellscript.sh"); if(file.exists()){ System.out.println("Is Execute allow : " + file.canExecute()); System.out.println("Is Write allow : " + file.canWrite()); System.out.println("Is Read allow : " + file.canRead()); } file.setExecutable(false); file.setReadable(false); file.setWritable(false); System.out.println("Is Execute allow : " + file.canExecute()); System.out.println("Is Write allow : " + file.canWrite()); System.out.println("Is Read allow : " + file.canRead()); if (file.createNewFile()){ System.out.println("File is created!"); }else{ System.out.println("File already exists."); } } catch (IOException e) { e.printStackTrace(); } } }