Sigo recibiendo esta excepción cuando intento con un archivo de película pero funciona 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.
Frederic Morin
¿Puede proporcionar su código en la pregunta? Además, ¿qué sistema operativo y versión de Java estás usando?
Zach Scrivena
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 () ); intente {Desktop.getDesktop (). abrir (archivo); } catch (ex) {...}
Frederic Morin
5
Sé que ha pasado mucho tiempo pero ... el problema era mi máquina. La asignación de programa predeterminada en mi Windows XP no está bien y tengo problemas con otros programas. ¡Probé con otras máquinas desde entonces y este método funciona bien! Aceptado!
Frederic Morin
7
Agregando a esta vieja respuesta; .edit()también se puede utilizar si el propósito de la apertura es editar. Algunos sistemas tienen diferentes aplicaciones predeterminadas para ver y editar; .open()abrirá el visor.
Jason C
0
SwingHacks tiene una solución para versiones anteriores de Java.
Creo que usaron el objeto Runtime para ejecutar el comando 'inicio' en Windows y hay un comando similar en Mac.
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
Crea una clase diferente dentro del paquete:
// code to open default application present in the handsetpublicclassFileOpen{
publicstaticvoidopenFile(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 fileif (url.toString().contains(".doc") || url.toString().contains(".docx")) {
// Word document
intent.setDataAndType(uri, "application/msword");
} elseif(url.toString().contains(".pdf")) {
// PDF file
intent.setDataAndType(uri, "application/pdf");
} elseif(url.toString().contains(".ppt") || url.toString().contains(".pptx")) {
// Powerpoint file
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
} elseif(url.toString().contains(".xls") || url.toString().contains(".xlsx")) {
// Excel file
intent.setDataAndType(uri, "application/vnd.ms-excel");
} elseif(url.toString().contains(".zip") || url.toString().contains(".rar")) {
// WAV audio file
intent.setDataAndType(uri, "application/x-wav");
} elseif(url.toString().contains(".rtf")) {
// RTF file
intent.setDataAndType(uri, "application/rtf");
} elseif(url.toString().contains(".wav") || url.toString().contains(".mp3")) {
// WAV audio file
intent.setDataAndType(uri, "audio/x-wav");
} elseif(url.toString().contains(".gif")) {
// GIF file
intent.setDataAndType(uri, "image/gif");
} elseif(url.toString().contains(".jpg") || url.toString().contains(".jpeg") || url.toString().contains(".png")) {
// JPG file
intent.setDataAndType(uri, "image/jpeg");
} elseif(url.toString().contains(".txt")) {
// Text file
intent.setDataAndType(uri, "text/plain");
} elseif(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);
}
}
JavaFX
vaya aquí o aquí .Respuestas:
Puede utilizar
Desktop.getDesktop().open(File file)
. Consulte la siguiente pregunta para conocer otras opciones: " [Java] ¿Cómo abrir el editor preferido del sistema de usuario para un archivo dado? "fuente
.edit()
también se puede utilizar si el propósito de la apertura es editar. Algunos sistemas tienen diferentes aplicaciones predeterminadas para ver y editar;.open()
abrirá el visor.SwingHacks tiene una solución para versiones anteriores de Java.
Creo que usaron el objeto Runtime para ejecutar el comando 'inicio' en Windows y hay un comando similar en Mac.
fuente
Aqui tienes:
File myFile = new File("your any type of file url"); FileOpen.openFile(mContext, myFile);
Crea 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); } }
fuente