unidades una todos subcarpetas permisos mover los listar directorio dar crear carpetas carpeta archivos almacenamiento java file filesystems

java - una - ¿Cómo crear un directorio en la memoria? sistema de pseudo archivo/directorio virtual



listar archivos de una carpeta y subcarpetas java (4)

No estoy seguro si esto es útil o no, pero revise Apache Commons VFS .

Parece que lo que necesitas es un sistema de archivos de memoria.

Para mi caso de uso, me gustaría tener un directorio en la memoria para almacenar algunos archivos durante un tiempo muy corto. En realidad, compilo el código fuente en archivos .class en tiempo de ejecución, clasifico y los ejecuto. La manera más limpia sería crear un directorio virtual y dejar que el compilador cree allí archivos .class. Por supuesto que podría usar un directorio temporal, pero tengo que limpiarlo antes de compilar, no sé si soy el único que lo usa, etc.

Entonces, ¿cómo y cómo es posible crear un directorio virtual, en el sentido de en memoria, en Java?


Parece que podrías usar un ramdisk. Hay muchas aplicaciones que harán esto, lo que uses dependerá del sistema operativo objetivo. No conozco ninguna API Java nativa que admita esto.



En Java 6 no es posible hacer este tipo de cosas dentro de una aplicación Java. Debe confiar en la plataforma del sistema operativo para proporcionar el pseudo sistema de archivos.

En Java 7, las API de NIO se han ampliado para proporcionar una API que le permita definir nuevos sistemas de archivos; ver FileSystemProvider .

Apache Commons VFS es otra opción, pero tiene un par de características que pueden causar problemas para el código existente y las bibliotecas (de terceros):

  • Los archivos y directorios en VFS se nombran usando urls, no objetos de File . Por lo tanto, el código que usa File para la manipulación de archivos no funcionará.

  • FileInputStream , FileOutputStream , FileReader y FileWriter no funcionarán con VFS por la misma razón.