猿问

如何使用默认的关联程序打开文件

如何使用Java中的默认关联程序打开文件?(例如电影文件)



繁华开满天机
浏览 574回答 3
3回答

catspeake

您可以使用Desktop.getDesktop().open(File file)。有关其他选项,请参见以下问题:“ [Java]如何为给定文件打开用户系统优先编辑器? ”

素胚勾勒不出你

SwingHacks提供了针对Java较早版本的解决方案。我认为他们使用Runtime对象在Windows上执行“开始”命令,而在Mac上也有类似的命令。

有只小跳蛙

干得好:File myFile = new File("your any type of file url");FileOpen.openFile(mContext, myFile);在包中创建另一个类:// code to open default application present in the handsetpublic 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);    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答