Varsayılan ilişkili programla bir dosya nasıl açılır


Yanıtlar:


139

1
Bir film dosyasıyla çalışırken bu istisnayı görmeye devam ediyorum, ancak bir görüntü dosyasıyla (bmp) çalışıyor: java.io.IOException: / D: /vidz/2006-04-02.wmv dosyası açılamadı. Hata mesajı: Parametre yanlış.
Frederic Morin

Soruya kodunuzu girebilir misiniz? Ayrıca, hangi işletim sistemi ve Java sürümünü kullanıyorsunuz?
Zach Scrivena

anlamadığım şey, resimlerle çalıştığı ... yine de Java 1.6.0.06 kullanıyorum ve işte kod: File file = new File (MoviePlay.getInstance (). getBasePath (), movieFile.getPath () ); {Desktop.getDesktop (). open (dosya) deneyin; } catch (ex) {...}
Frederic Morin

5
Biliyorum uzun zaman oldu ama ... sorun benim makinemdi. Windows XP'mdeki varsayılan program onayı uygun değil ve diğer programlarda sorun yaşıyorum. O zamandan beri diğer makinelerle denedim ve bu yöntem gayet iyi çalışıyor! Kabul edilmiş !
Frederic Morin 04

7
Bu eski yanıta ek olarak; .edit()açmanın amacı düzenleme ise de kullanılabilir. Bazı sistemlerin görüntüleme ve düzenleme için farklı varsayılan uygulamaları vardır; .open()görüntüleyiciyi açacak.
Jason C

0

SwingHacks , Java'nın eski sürümleri için bir çözüme sahiptir.

Sanırım pencerelerde 'start' komutunu yürütmek için Runtime nesnesini kullandıklarını ve mac'da da benzer bir komut olduğunu düşünüyorum.


-8

Hadi bakalım:

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

Paket içinde farklı bir sınıf oluşturun:

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

veya if koşulunu şu şekilde değiştirebilirsiniz
Vaibhav Joshi

eğer (url.getPath (). terminallerWith (". jpg") || url.getPath (). (uri, "resim / *"); }
Vaibhav Joshi

1
Bu yalnızca Android'de çalışır. Tüm platformlar için bir çözüm değildir.
2016

1
bir android geliştiricisi olarak, android geliştiricilerini en
aza indirmenin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.