Archivos en java
En el mundo de la informática un path se refiere a un archivo o a un directorio.
la clase java.io.File
representa un archivo o un directorio, y desde el mismo se pueden representar archivos relativos y absolutos.
Internamente java.io.File
utiliza separadores de archivos dependientes de la plataforma. Note en el siguiente ejemplo que no importa la forma en la que se envíen los slashes, java.io.File
los transforma a slashes dependientes de la plataforma:
File file = new File("C:/Apache2/htdocs");
File file = new File("C:/Apache2/htdocs/");
File file = new File("C:\\Apache2\\htdocs");
File file = new File("C:\\Apache2\\htdocs\\");
File file = new File("C:\\////Apache2//\\htdocs\\//");
En windows todos los ejemplos anteriores dan la salida:
C:\Apache2\htdocs
Por lo tanto por facilidad se recomienda siempre utilizar el separador /
como separador de archivos en vez de File.separator
para hacer más simple el código.
No hay una convensión para unir directorios y archivos, algunos agregan un slash al final de los directorios (trailing slash) para no estar repitiendo el slash cuando unen con los archivos. Sin embargo en java cuando se construye un java.io.File
, quita el slash al final del directorio (si lo tuviera). Por lo tanto siguiendo esa nomenclatura lo correcto es no manejar "/" al final de los archivos/directorios porque al convertirlo a java.io.File
lo quitará y se prestará a confusiones en el código.
Otra forma de unir un directorio con un archivo:
File sounds = new File(assets, "sounds");
Es el remplazo para java.io.File
desde java 7. Path y Paths
es la manera de representar un path. La clase Files
define las operaciones sobre los Path
.