How to specify platform independent file path?
WINDOWS
File.separatorChar: \
File.separator: \
File.pathSeparator: ;
File.pathSeparatorChar: ;
LINUX
File.separatorChar: /
File.separator: /
File.pathSeparator: ;
File.pathSeparatorChar: ;
Y una función para obtener el path url del archivo:
protected String damePathURL(String serverPathFile){
try{
return serverPathFile.replaceAll(File.separator, "/");
}catch(Exception e){
//lanzaría una excepción de tipo java.util.regex.PatternSyntaxException al intentar sustituir el File.Separator=\
return serverPathFile.replaceAll(File.separator+File.separator, "/");
}
}
jueves, 4 de octubre de 2007
How to specify platform independent file path?
Suscribirse a:
Enviar comentarios (Atom)
3 comentarios:
Para obtener el nombre del fichero independientemente de la plataforma del cliente y del servidor yo hize esto (gracias a ti para la inspiracion!):
import java.io.*;
public class test {
public static void main(String[] args) throws Exception
{
String fileWin="c:\\Windows\\My Documents\\mamamia.txt";
String fileUnix="/home/benjamin/myfile.txt";
System.out.println(new File(substFileSeparator(fileWin)).getName());
System.out.println(new File(substFileSeparator(fileUnix)).getName());
}
static String substFileSeparator(String PathFile){
String oldSep="\\";
try{
if ( File.separator.equals(oldSep) ) // we are in windows
oldSep="/";
return PathFile.replaceAll(oldSep, File.separator);
}catch(Exception e){
//may throw a java.util.regex.PatternSyntaxException//
return PathFile.replaceAll(oldSep+oldSep,File.separator);
}
}// substFileSeparator
}//class
sale:
$ java -cp . test
mamamia.txt
myfile.txt
Menos mal!!!
Después de varias horas de pruebas...
el maravilloso "File.separator+File.separator"acabó con mis problemas sobre Windows!!!
Mis benciones por el post! :)
Mil millones de gracias!!!!!!!!
Publicar un comentario