Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
Obtenga el objeto FileStore para cualquier ruta dada

Editar: reconozco que FileSystem.getDefault() me dará lo que estaba buscando en mi declaración de pregunta original. Estoy intentando usar FileSystem.getFileSystem (URI) para obtener el sistema de archivos para cualquier ruta determinada.

Estoy intentando desarrollar un código que me proporcione un objeto java.nio.file.FileSystem para una ruta determinada.

Aquí hay un código de ejemplo muy simplificado para dar una mejor idea de lo que se está intentando:

 public FileSystem getCwdFilesystem() { URI cwdUri = null; String delimiter = ""; try { _cwd = System.getProperty("user.dir"); cwdUri = new URI("file", delimiter + _cwd, null); } catch (URISyntaxException ue) { System.out.println("URI Creation failure on URI: " + _cwd); ue.printStackTrace(); System.exit(1); } System.out.println("Filestore data for CWD: " + cwdUri.toString()); return (FileSystems.getFileSystem(cwdUri)); }

Tras la ejecución, se lanza una excepción en la última línea de código:

 Filestore data for CWD: file:/Users/redacted/Documents/Java%20Projects/ExampleCode Exception in thread "main" java.lang.IllegalArgumentException: Path component should be '/' at sun.nio.fs.UnixFileSystemProvider.checkUri(UnixFileSystemProvider.java:77) at sun.nio.fs.UnixFileSystemProvider.getFileSystem(UnixFileSystemProvider.java:92) at java.nio.file.FileSystems.getFileSystem(FileSystems.java:217) at examplecode.FilesystemCapacity.getCwdFilesystem(FilesystemCapacity.java:54) at examplecode.FilesystemCapacity.main(FilesystemCapacity.java:33) Java Result: 1

Cuando realizo una pequeña actualización de la variable delimitadora:

 String delimiter = "/";

Recibo un mensaje de error diferente arrojado desde el mismo lugar:

 Filestore data for CWD: file://Users/redacted/Documents/Java%20Projects/ExampleCode Exception in thread "main" java.lang.IllegalArgumentException: Authority component present at sun.nio.fs.UnixFileSystemProvider.checkUri(UnixFileSystemProvider.java:73) at sun.nio.fs.UnixFileSystemProvider.getFileSystem(UnixFileSystemProvider.java:92) at java.nio.file.FileSystems.getFileSystem(FileSystems.java:217) at examplecode.FilesystemCapacity.getCwdFilesystem(FilesystemCapacity.java:54) at examplecode.FilesystemCapacity.main(FilesystemCapacity.java:33) Java Result: 1

Agregar caracteres "/" adicionales al delimitador simplemente hace que vuelva a aparecer el primer mensaje de error.

¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Encontré una referencia que había pasado por alto anteriormente en la última página del rastro del documento NIO.2.

Escribí un código de prueba que me dio exactamente lo que necesitaba:

 public void getPathFilesystem(String path) { try { URI rootURI = new URI("file:///"); Path rootPath = Paths.get(rootURI); Path dirPath = rootPath.resolve(path); FileStore dirFileStore = Files.getFileStore(dirPath); printFileStore(dirFileStore, path); } catch (IOException | URISyntaxException e) { e.printStackTrace(); } } public void printFileStore(FileStore filestore, String path) { try { System.out.println("Name: " + filestore.name()); System.out.println("\tPath: " + path); System.out.println("\tSize: " + filestore.getTotalSpace()); System.out.println("\tUnallocated: " + filestore.getUnallocatedSpace()); System.out.println("\tUsable: " + filestore.getUsableSpace()); System.out.println("\tType: " + filestore.type()); } catch (IOException ioe) { ioe.printStackTrace(); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda