Làm cách nào để mở tệp bằng chương trình liên kết mặc định trong Java? (ví dụ: một tệp phim)
Làm cách nào để mở tệp bằng chương trình liên kết mặc định trong Java? (ví dụ: một tệp phim)
Câu trả lời:
Bạn có thể sử dụng Desktop.getDesktop().open(File file)
. Xem câu hỏi sau để biết các tùy chọn khác: " [Java] Cách mở trình chỉnh sửa ưu tiên của hệ thống người dùng cho tệp đã cho? "
.edit()
cũng có thể được sử dụng nếu mục đích mở là để chỉnh sửa. Một số hệ thống có các ứng dụng mặc định khác nhau để xem và chỉnh sửa; .open()
sẽ mở trình xem.
SwingHacks có một giải pháp cho các phiên bản Java cũ hơn.
Tôi nghĩ rằng họ đã sử dụng đối tượng Runtime để thực hiện lệnh 'bắt đầu' trên windows và có một lệnh tương tự trên mac.
Của bạn đây:
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);
Tạo một lớp khác trong gói:
// 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);
}
}
JavaFX
hãy vào đây hoặc vào đây .