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

AppleScript Discussion :

Selectionner que un type d'extension [AppleScript]


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2011
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 38
    Par défaut Selectionner que un type d'extension
    Bonjour je souhaiterais faire un script qui liste des fichiers contenu dans un répertoire selectionné.

    Actuellement mon script est le suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    set votreChoix to choose folder with prompt "Selectionner le dossier contenant les pdf"
     
    set listeNoms to ""
     
    set pointvirgule to ";"
     
    set info to ""
     
     
     
     
    tell application "Finder"
     
    	set liste_Fichiers to every file of entire contents of folder (votreChoix as alias)
    La variable liste_fichiers récupère bien tout les fichiers du répertoire mais je souhaiterai qu'il récupère que les fichiers .pdf

    Pouvez vous m'aidez à faire cette action?

    Merci par avance pour votre aide

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour Duffman,
    tu as 2 méthodes possibles selon ce que tu veux faire.

    La première te permet de filtrer la demande à l'utilisateur en limitant son choix aux fichiers pdf. Si le but est de demander à l'utilisateur de sélectionner un fichier pdf et un seul, c'est la plus simple et plus rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tell application "Finder"
    	set Fichier_PDF to (choose file with prompt "Sélectionner un fichier pdf:" of type {"pdf"})
    end tell
    La seconde va demander à l'utilisateur de sélectionner un dossier, puis de lui faire choisir 1 ou plusieurs PDF parmi les fichiers de ce dossier. L'avantage est qu'il peut saisir plusieurs fichiers d'un coup. Par contre, si le nombre de fichiers est grand, le script peut être un peu plus long à tourner :
    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
    set liste_PDF to {}
    tell application "Finder"
    	set votreChoix to choose folder with prompt "Selectionner le dossier contenant les pdf"
    	set liste_Fichiers to (every file of entire contents of folder (votreChoix as alias)) as alias list
    	-- filtre la liste au seuls pdf. chaque éléments à 2 propriétés : Nom=son nom à afficher et Source=l'alias vers le fichier
    	-- construit une liste de noms pour affichage
    	set Liste_Affiche to {}
    	repeat with Fichier in liste_Fichiers
    		if (name extension of (info for Fichier) is "pdf") then
    			set liste_PDF to liste_PDF & {{Nom:name of Fichier, Source:Fichier}}
    			set Liste_Affiche to Liste_Affiche & {name of Fichier}
    		end if
    	end repeat
    	-- demande la sélection multiple
    	set Liste_Select to choose from list Liste_Affiche with title "Sélection de vos PDF" with prompt "Utilisez la touche cmd pour une sélection multiple:" with multiple selections allowed
    	if Liste_Select is false then return -- l'utilisateur a cliqué Annuler : fin du script	
    end tell
    Il te reste ensuite à boucler sur chaque nom sélectionné pour retrouver son alias dans la liste List_PDF (avec son nom tu trouves sa source !)
    Cette seconde méthode telle qu'elle est présentée ici a cependant une limite : Si 2 fichiers pdf ont le même nom dans 2 sous dossiers, tu ne pourra pas les distinguer...mais l'utilisateur non plus !
    Dans ce cas, tu peux contourner en ajoutant des caractéristiques du fichier à la liste affichée pour distinguer (par exemple, tu peux afficher au lieu du nom le dossier_parent:nom_fichier)

    Cordialement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 28
    Par défaut
    Bonjour à tous

    Pour compléter la réponse de Philippe, il y aurait, parmi d'autres possibilités (shell par exemple), une solution directe pour récupérer tous les documents d'un type spécifique (suivant son extension) contenus à l'intérieur d'un dossier (et son arborescence), c'est en utilisant un filtre "whose", qui évidemment ralenti un peu l'analyse, comme ceci (à adapter et à optimiser bien-sûr) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tell application "Finder" to return (every file of (entire contents of (choose folder without invisibles)) whose name extension is "pdf") as alias list

  4. #4
    Membre averti
    Inscrit en
    Octobre 2011
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 38
    Par défaut
    Merci beaucoup j'ai utilisé le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    whose name extension is "pdf"
    sa me suffisait.
    Sa fonctionne nickel merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [GetOpenFilename]ne montrer que les fichiers du type FinDenom.Extension
    Par mordrhim dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/05/2007, 10h00
  2. Réponses: 1
    Dernier message: 07/07/2006, 15h40
  3. [9i]erreur de type alors que le type est le meme...
    Par hoaxpunk dans le forum Oracle
    Réponses: 12
    Dernier message: 01/02/2006, 17h45
  4. est ce que existe type struct en java comme en c ?
    Par bill7 dans le forum Langage
    Réponses: 10
    Dernier message: 11/01/2006, 10h02
  5. Qu'est ce que le type IDISPATCH ?
    Par bob1980 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 09/12/2005, 12h44

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