डिफ़ॉल्ट संबद्ध प्रोग्राम के साथ एक फ़ाइल कैसे खोलें


86

मैं जावा में डिफ़ॉल्ट संबद्ध प्रोग्राम के साथ एक फ़ाइल कैसे खोलूं? (उदाहरण के लिए एक फिल्म फ़ाइल)


यदि आप यहां या यहांJavaFX जाने का उपयोग कर रहे हैं
सेड्रिक

जवाबों:


136

आप उपयोग कर सकते हैं Desktop.getDesktop().open(File file)। अन्य विकल्पों के लिए निम्नलिखित प्रश्न देखें: " [जावा] दिए गए फ़ाइल के लिए उपयोगकर्ता सिस्टम प्रीफर्ड एडिटर कैसे खोलें? "


1
फिल्म फ़ाइल के साथ प्रयास करते समय मुझे यह अपवाद मिलता रहता है, लेकिन यह एक छवि फ़ाइल (bmp) के साथ काम करता है: java.io.IOException: फ़ाइल खोलने में विफल: / D: /vidz/2006-04-02.wmv। त्रुटि संदेश: पैरामीटर गलत है।
फ्रेडरिक मॉरिन

क्या आप प्रश्न में अपना कोड प्रदान कर सकते हैं? इसके अलावा, आप किस ओएस और जावा संस्करण का उपयोग कर रहे हैं?
ज़च स्क्रिपवेना

मुझे समझ में नहीं आता है कि यह छवियों के साथ काम करता है ... वैसे भी मैं जावा 1.6.0.06 का उपयोग कर रहा हूं और यहां कोड: फ़ाइल फ़ाइल = नई फ़ाइल (MoviePlay.getInstance) (। getBasePath (), movieFile.getPath ()। ); {Desktop.getDesktop () खोलें। खोलें (फ़ाइल); } पकड़ने (पूर्व) {...}
फ्रेडेरिक मॉरिन

5
मुझे पता है कि यह एक लंबा समय हो गया है लेकिन ... समस्या मेरी मशीन थी। मेरे विंडोज एक्सपी में डिफॉल्ट प्रोग्राम एसिसिएशन ठीक नहीं है और मैं अन्य प्रोग्राम में इश्यू कर रहा हूं। मैंने तब से अन्य मशीनों के साथ प्रयास किया और यह तरीका ठीक काम करता है! स्वीकार किए जाते हैं !
फ्रेडरिक मोरिन

7
इस पुराने उत्तर को जोड़ना; .edit()अगर खोलने का उद्देश्य संपादन के लिए है तो इसका उपयोग भी किया जा सकता है। कुछ प्रणालियों में देखने और संपादन के लिए अलग-अलग डिफ़ॉल्ट अनुप्रयोग हैं; .open()दर्शक खोलेंगे।
जेसन सी

0

SwingHacks में जावा के पुराने संस्करणों के लिए एक समाधान है।

मुझे लगता है कि उन्होंने विंडोज़ पर 'स्टार्ट' कमांड को निष्पादित करने के लिए रनटाइम ऑब्जेक्ट का उपयोग किया और मैक पर एक समान कमांड है।


-8

हेयर यू गो:

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

पैकेज के भीतर एक अलग वर्ग बनाएँ:

// 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);
    }
}

या आप बदल सकते हैं , तो इस तरह condtion
वैभव जोशी

if (url.getPath ()। समाप्त। के साथ ("। jpg") || url.getPath ()। समाप्त होता है। (URI, "छवि / *"); }
वैभव जोशी

1
यह केवल एंड्रॉइड पर काम करता है। यह सभी प्लेटफार्मों के लिए एक समाधान नहीं है।
andred

1
एक एंड्रॉइड डेवलपर होने के नाते मुझे लगा कि एंड्रॉइड डेवलपर्स को कम से कम मदद मिलेगी
वैभव जोशी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.