Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

556
Visualizações
¿Cuál es el equivalente java.nio.file.Files de java.io.File.setWritable()?

El método java.io.File.setWritable() le permite configurar un archivo para que todos puedan escribir en sistemas de archivos que admitan esto de una manera independiente de la plataforma.

https://docs.oracle.com/javase/7/docs/api/java/io/File.html#setWritable(booleano,%20booleano)

¿Qué permite el comportamiento equivalente en el objeto java.nio.file.Path ?

El método estático java.nio.file.Files.setAttribute() implica que es posible establecer permisos,

Pero no hay un conjunto claro de parámetros que emule el método java.io.File.setWritable() .

https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#setAttribute(java.nio.file.Path,%20java.lang.String,%20java.lang. Objeto,%20java.nio.file.LinkOption...)

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

NIO amplía el IO de Java pero no es un reemplazo completo de las clases existentes. La clase java.io.File tampoco está en desuso. Para java.io.File.setWritable() no hay equivalente dentro de java.nio.file.Files . Como ya se mencionó en una respuesta anterior, aún puede convertir el objeto Path en un objeto File y llamar a setWritable .

NIO introduce la noción de vistas de atributos de archivos y permite acceder, por ejemplo, también a Listas de control de acceso (ACL) y atributos de archivos definidos por el usuario. Por ejemplo, en Windows, setWritable solo tiene efecto en el indicador de solo lectura (primera pestaña dentro del explorador de archivos) pero no tiene efecto en las ACL (consulte la pestaña de seguridad en el explorador de archivos). Incluso cuando llama a file.setWritable(false) , el propietario aún tendrá permisos para escribir, pero finalmente no podrá escribir debido al indicador de solo lectura establecido.

Dado que no todos los sistemas operativos son compatibles con POSIX (saludos a Redmond;-), no todas las vistas de atributos de archivo están disponibles en todos los sistemas operativos. El siguiente código haría más o menos lo mismo que java.io.File.setWritable :

 public static boolean setWriteable(Path path, boolean writeable) { try { PosixFileAttributeView posix = Files.getFileAttributeView(path, PosixFileAttributeView.class); if (posix != null) { // POSIX Set<PosixFilePermission> permissions = new HashSet<>(posix.readAttributes().permissions()); boolean changed = false; if (writeable) { changed = permissions.add(PosixFilePermission.OWNER_WRITE); } else { changed = permissions.remove(PosixFilePermission.OWNER_WRITE); } if (changed) { posix.setPermissions(permissions); } return true; } else { // Windows - does not support POSIX file permission view DosFileAttributeView dos = Files.getFileAttributeView(path, DosFileAttributeView.class); if (dos != null) { dos.setReadOnly(!writeable); } return true; } } catch (IOException e) { return false; } }

Entonces, si solo desea cambiar el indicador de solo lectura de un archivo, me quedaría con File.setWritable . Es simple y no tiene que preocuparse por el sistema operativo / vistas de atributos de archivo compatibles. Si necesita más (por ejemplo, cambiar el propietario/grupo de un archivo o leer/cambiar ACL), las vistas de atributos de archivo deben ser su elección.

over 4 years ago · Santiago Trujillo Relatório

0

Use 'setWritable' en el objeto de archivo asociado de la ruta:

 import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Permissions { public static void main(String[] args) throws Exception { Path current = Paths.get("."); Path path = Files.createFile(current.resolve("permissions.txt")); path.toFile().setWritable(true, false); } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda