2017-12-17 13 views
-1

Ich versuche, die Dateiberechtigungen für den Ordner und alle Dateien in einem Ordner zu ändern. Der folgende Code funktioniert gut für den Ordner. Gibt es einen Parameter, den ich einstellen kann, um die Berechtigungen für die Dateien innerhalb des Ordners zu ändern.Ändern Sie die Dateiberechtigungen für Dateien in einem Ordner

private void setPOSIXFilePermissions(String filePath) { 
     Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); 
     perms.add(PosixFilePermission.OWNER_READ); 
     perms.add(PosixFilePermission.OWNER_WRITE); 
     perms.add(PosixFilePermission.OWNER_EXECUTE); 
     perms.add(PosixFilePermission.GROUP_READ); 
     perms.add(PosixFilePermission.GROUP_EXECUTE); 
     perms.add(PosixFilePermission.OTHERS_READ); 
     perms.add(PosixFilePermission.OTHERS_EXECUTE); 

     try { 
      java.nio.file.Files.setPosixFilePermissions(Paths.get(filePath), perms); 
     } catch (IOException e) { 
      LOGGER.error("Failed to set file permission.", e); 
     } 
    } 
+0

(https://stackoverflow.com/q/664432/608639), [Abrufen der Dateinamen aller Dateien in ein Ordner] (https://stackoverflow.com/q/5694385/608639) und [Abrufen des Dateipfads von Dateiname mit Java] (https://stackoverflow.com/q/13509822/608639). – jww

Antwort

0

Try this: [? Wie programmatisch Dateiberechtigungen ändern i]

// Use: - recursive = true to change permissions for all sub directories and sub files 
//  - recursive = false for only one folder and its sub files. 

public static boolean givePerms(File f, Set<PosixFilePermission> perms, boolean recursive) 
{ 
    boolean success = givePerm(f, perms); 
    if (f.isDirectory() && recursive) 
    { 
     File[] files = f.listFiles(); 
     for (File file : files) 
     { 
      if (!givePerms(file, perms, recursive)) success = false; 
     } 
    } 
    return success; 
} 
Verwandte Themen