IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Desktop.getDesktop().open(File) et fichier multiple


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Par défaut Desktop.getDesktop().open(File) et fichier multiple
    bonjour a tous,
    voila sur une ancienne discussion tchize_ m'avais gentiment aider a trouver comment lancée un fichier avec le programme par défaut grâce a ceci
    Desktop.getDesktop().open(File)
    http://download.oracle.com/docs/cd/E...t/Desktop.html

    cependant maintenant le soucis qui se pose c'est comment lance plusieur fichier en même temps
    cordialement

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    tu doit récupère un File[] si je ne me trompe pas

    tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            File[] files = ...
            for(File f : files){
                Desktop.getDesktop().open(f);
            }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Par défaut
    enfaite sa les ouvre un par un je voudrai les ouvrir en même temps.
    par exemple comme sur windows on sélection plusieurs musique puis on fai entrer et la toutes les musique sont charger en même temps

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    Peux-tu ouvrir plusieurs fichiers image avec paint sans ouvrir un nouveau paint pour chaque image?

    Le fait que certains programme aient une "liste de lecture" est une capacité indépendante du fait qu'ils soient capable de lire le document en question.

    Si tu veux utiliser des fonctions spécifiques à un logiciel, tu est obligé de faire un code spécifique pour celui-ci. Par exemple avec firefox, si tu execute "firefox http://www.google.fr http://www.bing.fr", tu auras un firefox d'ouvert avec deux onglets. Mais cela ne marche pas avec paint, etc....

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut
    Selon ce que tu veux faire, tu peux peut-être utiliser des Threads, mais c'est lègerement plus compliqué à gérer (certains dirons surment que non).

    Regarde dans la javadoc java.lang.Thread

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    je ne pense pas que ce qu'il veut faire relevé d'un problème de thread
    car si on utilise des thread les fichiers vont s'ouvrir en parallèle mais dans des instance de programme diffèrent par exemple 20 instance de VLC pour 20 videos

    ce que je pense qu'il veut faire c'est utiliser les "playList" (je ne vois pas l'utiliter de lancé 20 vidéo en parallèle) pour n'avoir qu'un seul instance de vlc

    idem pour les autres programmes

    il faut que l'auteur de la question réponde à la question pour pouvoir donné une vrais reponse

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Par défaut
    Citation Envoyé par rolfone Voir le message
    je ne pense pas que ce qu'il veut faire relevé d'un problème de thread
    car si on utilise des thread les fichiers vont s'ouvrir en parallèle mais dans des instance de programme diffèrent par exemple 20 instance de VLC pour 20 videos

    ce que je pense qu'il veut faire c'est utiliser les "playList" (je ne vois pas l'utiliter de lancé 20 vidéo en parallèle) pour n'avoir qu'un seul instance de vlc

    idem pour les autres programmes

    il faut que l'auteur de la question réponde à la question pour pouvoir donné une vrais reponse
    c'est tous a fait sa les playlist, tous les lecteur ou les 3/4 créer des playlist si on sélection plusieurs fichier en simultanée, c'est se que je voudrais realiser lance plusieur fichier vidéo en une seul fois avec le lecteur par defaut

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    le problème, ce que ce n'est plus la règle "open" présent sur tout type de fichier, mais une règle spécifique à ce type de fichier, destinée à l'explorateur. Faudrait passer par une api native pour y avoir accès.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    le problème, ce que ce n'est plus la règle "open" présent sur tout type de fichier, mais une règle spécifique à ce type de fichier, destinée à l'explorateur. Faudrait passer par une api native pour y avoir accès.
    c'est a dire?

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    c'est à dire une api qui irait voir dans la base de registres ce qui a été encodé pour ce type de fichier.

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    le problème, ce que ce n'est plus la règle "open" présent sur tout type de fichier, mais une règle spécifique à ce type de fichier, destinée à l'explorateur.
    Je ne pense pas que ceci soit utile. A mon avis, l'os doit lancer la commande "logiciel_trouve fichier_double_clique.xxx" et ce doit être le logiciel qui gère son comportement tout seul.

    exemple:
    1) ouvre un fichier wma -> ouvert seul dans wmp. (wmplayer fichier1.wma)
    2)ouvre un 2° fichier wma -> ouvert seul dans wmp. (wmplayer fichier2.wma)
    -> il ne gère pas le multi-fichier
    3)ouvre deux fichier wma -> ouvert les deuxdans wmp. (wmplayer fichier1.wma fichier2.wma)
    (vous pouvez tester avec un win+r)

    edit, mauvaise cote.
    edit, test avec exec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // 1)
    Runtime.getRuntime().exec("C:/Program Files/Windows Media Player/wmplayer c:\\a.wma");
    // 2)
    Runtime.getRuntime().exec("C:/Program Files/Windows Media Player/wmplayer c:\\b.wma");
    // 3)
    Runtime.getRuntime().exec("C:/Program Files/Windows Media Player/wmplayer c:\\a.wma c:\\b.wma");
    Exemple qui montre pourquoi ce n'est pas a nous de gérer les listes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    File fic = new File("C:\\essai1.html");
    Desktop.getDesktop().open(fic );
    Testé avec un chrome déjà ouvert -> nouvel onglet.
    a tester avec d'autres navigateurs.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Par défaut
    Citation Envoyé par merill Voir le message
    Je ne pense pas que ceci soit utile. A mon avis, l'os doit lancer la commande "logiciel_trouve fichier_double_clique.xxx" et ce doit être le logiciel qui gère son comportement tout seul.

    exemple:
    ouvre un fichier wma -> ouvert seul dans wmp. (wmp fichier1.wma)
    ouvre un 2° fichier wma -> ouvert seul dans wmp. (wmp fichier2.wma)
    ouvre deux fichier wma -> ouvert les deuxdans wmp. (wmp fichier1.wma fichier2.wma)

    je fait un test vite fait et j'edite
    se serait nikel si vous pouviez m'éclairer j'ai penser essayer de bidouiller avec l'objet File et lui passer plusieurs fichier mais je n'y arrive pas, c'est tous bête il faudrait tous ouvrir en simultanée mais faut trouver ^^

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Par défaut
    Citation Envoyé par merill Voir le message
    Je ne pense pas que ceci soit utile. A mon avis, l'os doit lancer la commande "logiciel_trouve fichier_double_clique.xxx" et ce doit être le logiciel qui gère son comportement tout seul.

    exemple:
    1) ouvre un fichier wma -> ouvert seul dans wmp. (wmplayer fichier1.wma)
    2)ouvre un 2° fichier wma -> ouvert seul dans wmp. (wmplayer fichier2.wma)
    -> il ne gère pas le multi-fichier
    3)ouvre deux fichier wma -> ouvert les deuxdans wmp. (wmplayer fichier1.wma fichier2.wma)
    (vous pouvez tester avec un win+r)

    edit, mauvaise cote.
    edit, test avec exec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // 1)
    Runtime.getRuntime().exec("C:/Program Files/Windows Media Player/wmplayer c:\\a.wma");
    // 2)
    Runtime.getRuntime().exec("C:/Program Files/Windows Media Player/wmplayer c:\\b.wma");
    // 3)
    Runtime.getRuntime().exec("C:/Program Files/Windows Media Player/wmplayer c:\\a.wma c:\\b.wma");
    Exemple qui montre pourquoi ce n'est pas a nous de gérer les listes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    File fic = new File("C:\\essai1.html");
    Desktop.getDesktop().open(fic );
    Testé avec un chrome déjà ouvert -> nouvel onglet.
    a tester avec d'autres navigateurs.
    le Runtime.getRuntime().exec est interessant mais le probleme c'est que je ne connais pas forcement le chemin du lecteur que l'utilisateur va utiliser, ducoup il faudrais que j'ai une solution pour recuperer le chemin complet du lecteur par defaut sans en faire la demande a l'utilisateur. et sa tout en restant portable sur l'ensemble des systemes
    desoler d'etre aussi penible ^^

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    Bon je suis allé sur le projet de ceux qui ont fait la classe Desktop (https://jdic.dev.java.net/) et ils ont un truc qui t'irais bien:
    https://jdic.dev.java.net/nonav/docu...e-summary.html
    Il faut dl leur librairie et l'ajouter à ton projet
    https://jdic.dev.java.net/servlets/ProjectDocumentList
    Leur librairie est portable, dans la mesure où l'os supporte les associations de types, c'est comme Desktop : il faut tester la compatibilité avant de lancer.

    Je met mon code de test, ca affiche pas mal d'informations et ca lance deux fichiers html (C:\essai1.html et C:\essai2.html)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    AssociationService service = new AssociationService();
    Association assoc = service.getFileExtensionAssociation(("html"));
    System.out.println(assoc);
    System.out.println(assoc.getDescription());
    System.out.println(assoc.getIconFileName());
    System.out.println(assoc.getMimeType());
    System.out.println(assoc.getName());
    System.out.println(Arrays.toString(assoc.getActionList().toArray()));
    System.out.println(Arrays.toString(assoc.getFileExtList().toArray()));
    System.out.println("==== actions:");
    for(Object action : assoc.getActionList()){
    	Action act = (Action) action;
    	if(act.getVerb().equals("open")){
    		System.out.println(act.getCommand()+" C:\\essai1.html");
    		try {
    			Runtime.getRuntime().exec(act.getCommand()+" C:\\essai1.html C:\\essai2.html");
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		//ouvert, on peut arreter de parcourir
    		break;
    	}
    }

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 47
    Par défaut
    Citation Envoyé par merill Voir le message
    Bon je suis allé sur le projet de ceux qui ont fait la classe Desktop (https://jdic.dev.java.net/) et ils ont un truc qui t'irais bien:
    https://jdic.dev.java.net/nonav/docu...e-summary.html
    Il faut dl leur librairie et l'ajouter à ton projet
    https://jdic.dev.java.net/servlets/ProjectDocumentList
    Leur librairie est portable, dans la mesure où l'os supporte les associations de types, c'est comme Desktop : il faut tester la compatibilité avant de lancer.

    Je met mon code de test, ca affiche pas mal d'informations et ca lance deux fichiers html (C:\essai1.html et C:\essai2.html)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    AssociationService service = new AssociationService();
    Association assoc = service.getFileExtensionAssociation(("html"));
    System.out.println(assoc);
    System.out.println(assoc.getDescription());
    System.out.println(assoc.getIconFileName());
    System.out.println(assoc.getMimeType());
    System.out.println(assoc.getName());
    System.out.println(Arrays.toString(assoc.getActionList().toArray()));
    System.out.println(Arrays.toString(assoc.getFileExtList().toArray()));
    System.out.println("==== actions:");
    for(Object action : assoc.getActionList()){
    	Action act = (Action) action;
    	if(act.getVerb().equals("open")){
    		System.out.println(act.getCommand()+" C:\\essai1.html");
    		try {
    			Runtime.getRuntime().exec(act.getCommand()+" C:\\essai1.html C:\\essai2.html");
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		//ouvert, on peut arreter de parcourir
    		break;
    	}
    }
    nikel un grand merci une dernière question leur lib on l'intègre comment et laquelle faut il prendre cordialement

  16. #16
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    sous eclipse

    j'ai téléchargé jdic-0.9.5-bin-cross-platform.zip
    j'ai dézippé dans le dossier root de mon projet
    j'ai ajouté jdic.jar à mon mon build path

Discussions similaires

  1. open files: comment ouvrir plusieurs fichiers?
    Par m_informat dans le forum Fortran
    Réponses: 4
    Dernier message: 24/10/2011, 12h12
  2. Desktop.getDesktop().open(File) et lecteur reseau
    Par philip_b dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 18/08/2010, 11h11
  3. Réponses: 1
    Dernier message: 26/06/2008, 09h10
  4. [CSS] fichiers multiples
    Par TERRIBLE dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 02/01/2006, 02h22
  5. [File] Le fichier ne se crée pas
    Par Kyti dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 18/07/2005, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo