2008-09-15 7 views
5

Java impone restricciones adicionales propias. Ventanas (hasta Vista) no permite nombres que incluyen¿Impone Java restricciones adicionales a los nombres de archivo que no sean el sistema operativo subyacente?

\/< > ? * : 

Sé cómo validar nombres (una expresión regular).

Necesito validar los nombres de los archivos ingresados ​​por los usuarios.

Mi aplicación no necesita ejecutarse en ninguna otra plataforma, aunque, por supuesto, ¡preferiría ser independiente de la plataforma!

Respuesta

2

No, puede escapar de cualquier carácter que Java no permita en literales de cadenas, pero el sistema de archivos lo permite.

Además, si tratara de puerto de una aplicación de Windows a Mac o Unix que lo mejor es utilizar:

File.separator 

Para determinar el separador de archivo correcto a utilizar en cada plataforma.

0

Cuando crea un nuevo archivo, los argumentos ingresados ​​serán normalizados por una implementación específica de plataforma de la clase java.io.FileSystem. No hay restricciones específicas de Java que yo sepa.

y sí, siempre use File.separator.

0

Java admite cualquier cadena que se pueda expresar en Unicode (sujeto a una longitud máxima ridículamente larga, Integer.MAX_VALUE), y los nombres de archivo son simplemente otro tipo de cadena.

Por supuesto, esto significa que puede intentar y referirse a un archivo utilizando un nombre que no es compatible con el sistema operativo subyacente. Si hace esto, obtendrá algún tipo de IOException cuando intente utilizar la referencia de archivo ...

+0

La longitud máxima de la cadena es la de Integer.MAX_VALUE, ya que la legth se almacena en un int. – jjnguy

Cuestiones relacionadas