2009-02-15 17 views

Respuesta

110

Puede usar Desktop.getDesktop().open(File file). Consulte la siguiente pregunta para conocer otras opciones: "[Java] How to open user system preffered editor for given file?"

+1

sigo recibiendo esta excepción cuando se trata de un archivo de película, pero trabajar con un archivo de imagen (BMP) : java.io.IOException: no se pudo abrir el archivo:/D: /vidz/2006-04-02.wmv. Mensaje de error: el parámetro es incorrecto. –

+0

¿Puede proporcionar su código en la pregunta? Además, ¿qué versión de sistema operativo y Java está usando? –

+0

Lo que no entiendo es que funciona con imágenes ... de todos modos estoy usando Java 1.6.0.06 y aquí está el código: File file = new File (MoviePlay.getInstance(). GetBasePath(), movieFile.getPath ()); try {Desktop.getDesktop(). Open (archivo); } catch (ex) {...} –

0

SwingHacks tiene una solución para las versiones anteriores de Java.

Creo que usaron el objeto Runtime para ejecutar el comando 'start' en Windows y hay un comando similar en el mac.

-4

Aquí van:

File myFile = new File("your any type of file url"); 
FileOpen.openFile(mContext, myFile); 

crear una clase diferente dentro del paquete:

// code to open default application present in the handset 


public class FileOpen { 

    public static void openFile(Context context, File url) throws IOException { 
     // Create URI 
     File file=url; 
     Uri uri = Uri.fromFile(file); 

     Intent intent = new Intent(Intent.ACTION_VIEW); 
     // Check what kind of file you are trying to open, by comparing the url with extensions. 
     // When the if condition is matched, plugin sets the correct intent (mime) type, 
     // so Android knew what application to use to open the file 
     if (url.toString().contains(".doc") || url.toString().contains(".docx")) { 
      // Word document 
      intent.setDataAndType(uri, "application/msword"); 
     } else if(url.toString().contains(".pdf")) { 
      // PDF file 
      intent.setDataAndType(uri, "application/pdf"); 
     } else if(url.toString().contains(".ppt") || url.toString().contains(".pptx")) { 
      // Powerpoint file 
      intent.setDataAndType(uri, "application/vnd.ms-powerpoint"); 
     } else if(url.toString().contains(".xls") || url.toString().contains(".xlsx")) { 
      // Excel file 
      intent.setDataAndType(uri, "application/vnd.ms-excel"); 
     } else if(url.toString().contains(".zip") || url.toString().contains(".rar")) { 
      // WAV audio file 
      intent.setDataAndType(uri, "application/x-wav"); 
     } else if(url.toString().contains(".rtf")) { 
      // RTF file 
      intent.setDataAndType(uri, "application/rtf"); 
     } else if(url.toString().contains(".wav") || url.toString().contains(".mp3")) { 
      // WAV audio file 
      intent.setDataAndType(uri, "audio/x-wav"); 
     } else if(url.toString().contains(".gif")) { 
      // GIF file 
      intent.setDataAndType(uri, "image/gif"); 
     } else if(url.toString().contains(".jpg") || url.toString().contains(".jpeg") || url.toString().contains(".png")) { 
      // JPG file 
      intent.setDataAndType(uri, "image/jpeg"); 
     } else if(url.toString().contains(".txt")) { 
      // Text file 
      intent.setDataAndType(uri, "text/plain"); 
     } else if(url.toString().contains(".3gp") || url.toString().contains(".mpg") || url.toString().contains(".mpeg") || url.toString().contains(".mpe") || url.toString().contains(".mp4") || url.toString().contains(".avi")) { 
      // Video files 
      intent.setDataAndType(uri, "video/*"); 
     } else { 
      //if you want you can also define the intent type for any other file 

      //additionally use else clause below, to manage other unknown extensions 
      //in this case, Android will show all applications installed on the device 
      //so you can choose which application to use 
      intent.setDataAndType(uri, "*/*"); 
     } 

     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent); 
    } 
} 
+0

o puede cambiar la condición ** if ** como esta –

+0

if (url.getPath(). EndsWith (". Jpg") || url.getPath(). EndsWith (". Jpeg") || url.getPath() .endsWith (". png")) { intent.setDataAndType (uri, "image/*"); } –

+1

Esto solo funciona en Android. No es una solución para todas las plataformas. – andred

Cuestiones relacionadas