Ver Mensaje Individual
  #9 (permalink)  
Antiguo 21/05/2012, 15:00
rglk666
 
Fecha de Ingreso: agosto-2011
Mensajes: 20
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Abrir archivo en red

Encontré la solución en esta página:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6780505

Con estas funciones ya funciona:

Código:
Here is a workaround
  //launch file
  public void launchFile(File file)
  {
    if(!Desktop.isDesktopSupported()) return;
    Desktop dt = Desktop.getDesktop();
    try
    {
      dt.open(file);
    } catch (IOException ex)
    {
      //this is sometimes necessary with files on other servers ie \\xxx\xxx.xls
      launchFile(file.getPath());
    }
  }
  
  //this can launch both local and remote files
  public void launchFile(String filePath)
  {
    if(filePath == null || filePath.trim().length() == 0) return;
    if(!Desktop.isDesktopSupported()) return;
    Desktop dt = Desktop.getDesktop();
    try
    {      
       dt.browse(getFileURI(filePath));
    } catch (Exception ex)
    {
      ex.printStackTrace();
     }
   }

  //generate uri according to the filePath
  private URI getFileURI(String filePath)
  {
    URI uri = null;
    filePath = filePath.trim();
    if(filePath.indexOf("http") == 0 || filePath.indexOf("\\") == 0)
    {
      if(filePath.indexOf("\\") == 0) filePath = "file:" + filePath;
      try
      {
        filePath = filePath.replaceAll(" ", "%20");
        URL url = new URL(filePath);
        uri = url.toURI();
      } catch (MalformedURLException ex)
      {
        ex.printStackTrace();
      }
      catch (URISyntaxException ex)
      {
        ex.printStackTrace();
      }
    }
    else
    {
      File file = new File(filePath);
      uri = file.toURI();
    }
    return uri;
  }
Luego es sollo llamar a la funcion y pasarle el parametro:

Código:
launchFile("\\\\192.168.1.4\\carpeta con espacios\\archivo con espacios.pdf");
Tal vez le sirva a alguien, gracias.