# Création simple dossier + arborescence



## AnaïsG (28 Février 2018)

Bonjour à tous, 

En lisant le litre du poste, on pourrait croire qu'il s'agit encore d'un sujet ultra redondant et courant.
Le soucis c'est que malgré diverses recherches sur des forum ou autre je ne trouve pas de réponse à ma question. 

Pour mon travail, dans un processus d'uniformisation j'aimerais créer un script simple de création de dossier avec des sous dossier et que le tout soit "dissimuler". Je vais essayer de rédiger un exemple pour que ce soit plus clair. 

J'aimerais que dans un textedit (pour exemple, cela peut être ailleurs),  juste en tapant "Dossier 1" il y ai automatiquement la création de "Dossier 1" et a l'intérieur " sous dossier 1", "sous dossier 2", "sous dossier 3" ect ... 
Le nom du dossier serait variable a chaque utilisation du script mais les noms des sous dossiers seraient fixes. 

Pardonnez moi, si ma requête semble évidente mais je suis assez novice dans ce domaine. 
Bonne journée !


----------



## zeltron54 (28 Février 2018)

Bonjour,
Pour réfléchir à la question, il faudrait avoir plus d'infos:
1 - le dossier doit se créer à quel endroit ? fixe ou à définir par l'utilisateur ?
2 - Le nombre de sous dossier est fixe ou à définir par l'utilisateur.
Au vue de ces éléments on peut envisager de créer un applescript qui te demande les infos et fait le job.


----------



## AnaïsG (28 Février 2018)

zeltron54 a dit:


> Bonjour,
> Pour réfléchir à la question, il faudrait avoir plus d'infos:
> 1 - le dossier doit se créer à quel endroit ? fixe ou à définir par l'utilisateur ?
> 2 - Le nombre de sous dossier est fixe ou à définir par l'utilisateur.
> Au vue de ces éléments on peut envisager de créer un applescript qui te demande les infos et fait le job.



Alors pour répondre, ces deux paramètres seront fixes. Création du dossier sur le Bureau et il y aura toujours le même nombre de sous dossier s'appelant toujours pareils.


----------



## zeltron54 (28 Février 2018)

AnaïsG a dit:


> il y aura toujours le même nombre de sous dossier s'appelant toujours pareils.


OK ! alors il faut les noms, pour les intégrer dans le script !

Je résume: le script te demande le nom du dossier à créer puis crée sur le bureau ce dossier avec les sous dossier dedans ?


----------



## AnaïsG (28 Février 2018)

zeltron54 a dit:


> OK ! alors il faut les noms, pour les intégrer dans le script !
> 
> Je résume: le script te demande le nom du dossier à créer puis crée sur le bureau ce dossier avec les sous dossier dedans ?



Tu as très bien résumer le truc ! 

Pour les nom des dossiers : 
IMAGES
ORIGINAUX
GCR
ELEMENTS
VALIDATIONS


----------



## byte_order (28 Février 2018)

Dans un fichier *create_empty_tree.sh*


```
#!/bin/sh

ROOT="$1"
for subdir in IMAGES ORIGINAUX GCR ELEMENTS VALIDATIONS; do
  mkdir -p "$ROOT/$subdir"
done
```

Puis pour l'executer :


```
./create_empty_tree.sh DOSSIER1
```


----------



## byte_order (28 Février 2018)

Autre solution très simple, sans scripting : avoir une arborescence vide de modèle quelques parts, et utiliser le Finder pour :

la dupliquer
renommer le nom du dossier racine.
Hop.


----------



## AnaïsG (28 Février 2018)

Après concertation avec mes collègues il veulent faire quelques modifs dans l'arborescence.
Mettre le dossier GCR dans le sous dossier ELEMENT et y rajouter également un sous dossier MAIL.
Ce qui donnerais.

DOSSIER 1
IMAGES
ORIGINAUX
VALIDATION
ELEMENT
GCR
MAILS​


byte_order a dit:


> Puis pour l'executer :
> 
> 
> ```
> ...



Il y a t'il un moyen de s'astreindre de la commande d'exécution, pour simplement avoir a rentrer le nom du dossier puis "valider" ?


----------



## zeltron54 (28 Février 2018)

voila un script qui fait le job.
Tu peux l'enregistrer au format application et lancer cette appli au besoin

```
display dialog "Entrer le nom du dossier à créer: " default answer "Dossier"
set lenom to text returned of result

tell application "Finder"
    set lenom to lenom as string
    set chemin to (path to desktop folder) as string
    set chemin2 to chemin & lenom as string
    make new folder at chemin with properties {name:lenom}
    make new folder at chemin2 with properties {name:"IMAGES"}
    make new folder at chemin2 with properties {name:"ORIGINAUX"}
    make new folder at chemin2 with properties {name:"GCR"}
    make new folder at chemin2 with properties {name:"ELEMENTS"}
    make new folder at chemin2 with properties {name:"VALIDATIONS"}
end tell
```

Tu as donc plusieurs possibilités avec celle proposés par "byte_order"


----------



## byte_order (28 Février 2018)

Ben oui, il suffit de créer cette arborescence vide quelque part, et à chaque besoin, la dupliquer via Finder et renommer le dossier dupliqué comme on le souhaite.

Sinon, bien là faut en passer par Automator/AppleScript j'imagine.


----------



## zeltron54 (28 Février 2018)

Voila le script modifié avec gcr et mails

```
display dialog "Entrer le nom du dossier à créer: " default answer "Dossier"
set lenom to text returned of result

tell application "Finder"
    set lenom to lenom as string
    set chemin to (path to desktop folder) as string
    set chemin2 to chemin & lenom as string
    set chemin3 to chemin2 & ":ELEMENTS" as string
   
    make new folder at chemin with properties {name:lenom}
    make new folder at chemin2 with properties {name:"IMAGES"}
    make new folder at chemin2 with properties {name:"ORIGINAUX"}
    make new folder at chemin2 with properties {name:"ELEMENTS"}
    make new folder at chemin2 with properties {name:"VALIDATIONS"}
    make new folder at chemin3 with properties {name:"GCR"}
    make new folder at chemin3 with properties {name:"MAILS"}
end tell
```


----------



## daffyb (28 Février 2018)

On pourrait aussi faire un script de dossier. À chaque fois qu’on dépose un dossier dans le dossier « magique » ça crée à l’intérieur l’arborescence.


----------



## AnaïsG (28 Février 2018)

zeltron54 a dit:


> Voila le script modifié avec gcr et mails
> 
> ```
> display dialog "Entrer le nom du dossier à créer: " default answer "Dossier"
> ...




Parfait, c'est exactement ce que je cherchais. En plus j'ai compris l'écriture du script donc si je dois faire des modifications, je pourrais le faire moi même. 
Merci à tous


----------

