Hoe een bestand te openen met de standaard en het bijbehorende programma

Hoe open ik een bestand met de standaard en het bijbehorende programma in Java? (bijvoorbeeld een film)



3 Replies
  1. 129

    Kunt u gebruik maken van Bureaublad.getDesktop().open(Bestand). Zie de volgende vraag voor andere opties: “[Java] Hoe open user systeem preffered editor voor een bepaald bestand?

    • Ik krijg steeds deze uitzondering is wanneer het proberen met een film, maar het werken met een image-bestand (bmp): java.io.IOException: Failed to open file:/D:/vidz/2006-04-02.wmv. Foutbericht: De parameter is onjuist.
    • Kan u de code in de vraag? Ook, die OS en Java-versie gebruik je?
    • wat ik niet begrijp is dat het werken met beelden… hoe dan ook ik ben met behulp van Java 1.6.0.06 en hier is de code: File = new File(MoviePlay.getInstance().getBasePath(), filmpje.getPath()); try { Bureaublad.getDesktop().open(file); } catch(ex) { … }
    • oh en btw, bestand.bestaan() == true
    • Zou u probeert een bestand.getCanonicalFile() om te zien of er een verschil?
    • Ik krijg dit bericht: java.io.IOException: Failed to open file:/D:/vidz/2006-04-02.wmv. Foutbericht: De parameter is onjuist.
    • Ik weet dat het een lange tijd, maar… het probleem was mijn machine. Het standaard programma assiciation in mijn Windows XP niet ok en ik heb een probleem in andere programma ‘ s. Ik heb geprobeerd met andere machines sindsdien en deze methode werkt prima ! Geaccepteerd !
    • Toe te voegen aan deze oude beantwoorden; .edit() kan ook worden gebruikt als het doel van de opening is voor het bewerken. Sommige systemen hebben verschillende standaard toepassingen voor het bekijken en bewerken; .open() wordt geopend in de viewer.

  2. 0

    SwingHacks heeft een oplossing voor oudere versies van Java.

    Ik denk dat ze gebruikt de Runtime-object voor het uitvoeren van de ‘start’ – commando op windows en is er een soortgelijke opdracht op de mac.

    • mac opdracht is open.
  3. -7

    Hier ga je:

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

    Het maken van een andere klasse binnen het pakket:

    //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);
        }
    }
    • of kunt u de als conditie verkeren als deze
    • als(url.getPath().endsWith(“.jpg”) || url.getPath().endsWith(“.jpeg”)|| url.getPath().endsWith(“.png”)) { opzet.setDataAndType(uri,”image/*”); }
    • Dit werkt alleen op Android. Het is niet een oplossing voor alle platformen.
    • een android ontwikkelaar dacht ik dat het nuttig zou zijn om minimaal android-ontwikkelaars

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *