So legen Sie die Dateiberechtigung in Java fest

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:

  1. file.canExecute(); – return true, file is executable; false is not.

  2. file.canWrite(); – return true, file is writable; false is not.

  3. file.canRead(); – return true, file is readable; false is not.

Set the file permission:

  1. file.setExecutable(boolean); – true, allow execute operations; false to disallow it.

  2. file.setReadable(boolean); – true, allow read operations; false to disallow it.

  3. 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();
        }
    }
}