Saya terus mendapatkan pengecualian ini saat mencoba dengan file film tetapi berfungsi dengan file gambar (bmp): java.io.IOException: Gagal membuka file: / D: /vidz/2006-04-02.wmv. Pesan kesalahan: Parameter salah.
Frederic Morin
Bisakah Anda memberikan kode Anda dalam pertanyaan? Juga, OS dan versi Java mana yang Anda gunakan?
Zach Scrivena
apa yang saya tidak mengerti adalah itu bekerja dengan gambar ... bagaimanapun saya menggunakan Java 1.6.0.06 dan inilah kodenya: File file = new File (MoviePlay.getInstance (). getBasePath (), movieFile.getPath () ); coba {Desktop.getDesktop (). open (file); } menangkap (mis.) {...}
Frederic Morin
5
Saya tahu ini sudah lama tapi ... masalahnya adalah mesin saya. Asisiasi program default di Windows XP saya tidak baik dan saya mengalami masalah di program lain. Saya mencoba dengan mesin lain sejak itu dan metode ini berfungsi dengan baik! Diterima!
Frederic Morin
7
Menambah jawaban lama ini; .edit()juga dapat digunakan jika tujuan pembukaan adalah untuk mengedit. Beberapa sistem memiliki aplikasi default yang berbeda untuk melihat dan mengedit; .open()akan membuka penampil.
Jason C
0
SwingHacks memiliki solusi untuk versi Java yang lebih lama.
Saya pikir mereka menggunakan objek Runtime untuk menjalankan perintah 'start' di windows dan ada perintah serupa di mac.
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
Buat kelas yang berbeda di dalam paket:
// 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
buka di sini atau di sini .Jawaban:
Anda bisa menggunakan
Desktop.getDesktop().open(File file)
. Lihat pertanyaan berikut untuk opsi lain: " [Java] Bagaimana cara membuka editor pilihan sistem pengguna untuk file yang diberikan? "sumber
.edit()
juga dapat digunakan jika tujuan pembukaan adalah untuk mengedit. Beberapa sistem memiliki aplikasi default yang berbeda untuk melihat dan mengedit;.open()
akan membuka penampil.SwingHacks memiliki solusi untuk versi Java yang lebih lama.
Saya pikir mereka menggunakan objek Runtime untuk menjalankan perintah 'start' di windows dan ada perintah serupa di mac.
sumber
Ini dia:
File myFile = new File("your any type of file url"); FileOpen.openFile(mContext, myFile);
Buat kelas yang berbeda di dalam paket:
// 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); } }
sumber