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 :

Automator et AppleScript


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 15
    Par défaut Automator et AppleScript
    Bonjour à toutes et à tous,

    Ma question est la suivante : Comment faire pour définir le poids et le contenu d'un dossier à l'avance ?

    Je souhaiterais qu'un de mes dossiers ne contienne que des fichiers vidéos de types MOV et MPEG4 et que ce même dossier n'excède pas 5Go.

    Je n'ai, pour l'instant, trouvé aucune réponse correspondant à mon problème...

    Dans l'attente de vos nouvelles,
    Merci

  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 Poids d'un dossier
    Bonsoir Aprod,
    Connaître le poids d'un dossier est chose facile...après un évènement, ou encore dans l'absolu. Mais ce que tu cherches à faire c'est de connaître la taille telle qu'elle serait si l'évènement avait déjà eu lieu...!!!

    Je te suggère de ruser un peu en utilisant les actions de dossier. Des actions de dossiers permettent de déclencher un script APRES que des items aient été ajoutés à un dossier. L'astuce consiste donc à ajouter les fichiers dans un dossier (ce qui déclenche le script) et transférer ces fichiers dans uns sous dossier de ce dossier si et seulement si leur extension et la future taille correspond à tes critères !

    Pour ce qui est d'ajouter des actions de dossier, je te laisse te référer aux nombreux tutoriels existants.

    Pour le script, je viens d'en écrire un ci-dessous pour toi. Seul inconvénient, je le trouve un peu lent lorsque le dossier contient de nombreux fichiers. (une solution plus rapide serait, je pense, un script Unix, mais je ne maîtrise pas assez)
    J'espère au moins que cette version commentée t'aidera.
    Pour mes tests, j'ai mis des extensions psd, jpg et txt (variable Liste_Ext). A toi de les changer pour tes MOV et MPEG en fonction des extensions que tu souhaites filtrer.

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    (*  Script d'action de dossier : 
     
    Lors de l'ajout de fichiers dans le dossier, on vérifie leur types et la taille cumulée d'un sous dossier 
    AVANT de les copier dans ce sous dossier
     
    Si le type ou la taille ne le permet pas, les fichiers ajoutés restent dans le dossier où
    ils ont été dropés, mais ne sont pas transférer au sous dossier
     
    Dans ce dossier, on crée, si nécessaire le sous dossier avant de commencer
    *)
     
    on adding folder items to Mon_Dossier after receiving Liste_Fichiers
    	--nom du sous dossier qui sera controlé (en taille totale et types de fichiers)
    	set Dos_Controle to "Mon_Dossier Controlé"
    	-- liste des Extensions acceptées
    	set liste_Ext to {"psd", "jpg", "txt"}
    	-- taille maxi autorisé pour le Dos_Controle
    	set Taille_Maxi to 20000000
     
    	tell application "Finder"
    		-- pour éviter que l'ajout du dossier Dos_Controle ne crée aussi un évènement
    		-- on teste ce qui est ajouté et, éventuellement, on ne fait rien !
    		if name of first item of Liste_Fichiers is Dos_Controle then return
     
     
    		-- vérifie si le sous dossier existe déjà, sinon, le crée
    		if not (exists folder Dos_Controle of Mon_Dossier) then
    			make new folder at Mon_Dossier with properties {name:Dos_Controle}
    			-- attention, cet ajout génère encore un event add folder items !! -> d'où le premier test !
    		end if
     
    		-- évaluation de la taille actuelle du dossier Dos_Controle
    		set Taille_actuelle to 0
    		set Liste_actuelle to (items of ((folder Dos_Controle of Mon_Dossier) as alias))
    		repeat with Mon_Item in Liste_actuelle
    			set Taille_actuelle to Taille_actuelle + (size of Mon_Item)
    		end repeat
    		display dialog "taille actuelle du dossier = " & Taille_actuelle
     
    		-- évaluation des types de fichiers ajoutés et calcul de la taille à ajouter
    		-- on crée une liste de fichiers à ajouter qui ne contient que ceux dont le type est OK
    		-- si item OK on cumule sa taille
    		set Liste_OK to {}
    		set Taille_Ajout to 0
    		repeat with Mon_Item in Liste_Fichiers
    			if name extension of Mon_Item is in liste_Ext then
    				set end of Liste_OK to Mon_Item
    				set Taille_Ajout to Taille_Ajout + (size of Mon_Item)
    			end if
    		end repeat
     
    		-- vérifie le taille totale future
    		if (Taille_actuelle + Taille_Ajout) > Taille_Maxi then
    			display dialog "Désolé, cet ajout de fichiers excède la taille permise" & return & "il y a " & (Taille_actuelle + Taille_Ajout - Taille_Maxi) & " octets de trop !" buttons {"Annuler"}
    		end if
     
    		-- tout va bien, on peut effectivement transférer les fichiers dans le dossier_Controle
    		move Liste_OK to folder Dos_Controle of Mon_Dossier as alias
    		display dialog "Opération terminée"
    	end tell
    end adding folder items to
    En espérant t'avoir aidé...
    Cordialement

  3. #3
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 15
    Par défaut
    Merci énormément PBELL !!!

    Je vais tester ton script en modifiant les types de fichiers en MOV et MPEG et je te tiendrais au courant.

    Bonne soirée !

  4. #4
    Membre averti
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2012
    Messages : 15
    Par défaut
    Bonjour PBELL,

    Pour l'instant, de mon côté, ça ne fonctionne pas mais ça c'est à cause de mon manque de pratique concernant ce genre d'actions !

    J'ai, toutefois, une question à te poser :

    - Peut-on faire en sorte que tous les sous-dossiers d'un même dossier aient ces caractéristiques de poids et de types de contenu ?
    C'est à dire que l'action de dossier ne serait pas attribuée à chaque sous-dossiers mais à un seul et même dossier contenant tous ces sous-dossiers même s'ils n'existent pas encore.

    C'est peut-être déjà le cas dans le script que tu m'a envoyé, mais je n'en suis pas sûre...Il y a quelque chose que je ne saisie pas...

    Encore merci pour ton aide

    A très vite,
    Cordialement.

    PS : Je continues de chercher pour faire fonctionner ton script !

Discussions similaires

  1. Créer un dossier avec sous dossier avec automator ou applescript
    Par L'escouade de Pierre dans le forum AppleScript
    Réponses: 37
    Dernier message: 08/11/2014, 19h38
  2. Réponses: 4
    Dernier message: 30/10/2014, 23h08
  3. [AUTOMATION WORD]Pilotage Word par Delphi
    Par Sunny dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 05/12/2002, 17h09
  4. [VBA-W] [AUTOMATION]Liste Fonctions/Paramètres
    Par Sunny dans le forum VBA Word
    Réponses: 2
    Dernier message: 05/12/2002, 16h35
  5. Accès à une application ouverte (OLE Automation ?)
    Par PascalB dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/06/2002, 14h39

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