# Liste de fichier



## Gregoryen (21 Janvier 2018)

Bonjour !

Alors voilà j'ai sur mon disque dur externe des films.

Cependant si un jour ce disque claque, j'aimerais savoir quelle sont les films que j'avais à l'intérieur.

Je m'en fiche de les perdre.

Alors j'ai regardé sur internet et je suis tombé sur pas mal de choses.

En effet avec automator j'ai créer une petite app qui lance un script et enregistre le fichier sur le bureau.

Du coup quand je lance cette application le petit fichier se met à jour, et à l'intérieur j'ai le contenu de mon disque.

J'ai deux petits soucis à régler.

- J'ai plusieurs dossier et le script ne me permet que de voir le titre du dossier et pas ce qu'il y a à l'intérieur.

- J'aimerais qu'il se mette à jour en temps réel dès qu'il y a un mouvement/écriture.

Alors j'ai trouvé CronniX qui permet déjà de pouvoir lancer une app a une heure donnée etc mais je ne comprend rien à son fonctionnement et je ne pense pas qu'il fasse du temps réel.

Voici le petit script en Shell


```
ls -a "/Volumes/HDD 500"
```

Voilà savez vous s'il existe une solution ?

Merci à vous et bon weekend !!


----------



## flotow (21 Janvier 2018)

A moins d'avoir des fichiers de films qui commencent par un point, comme .Tron Legacy.mkv, pas besoin d'avoir -a
Pour la recursion, il faut utiliser -R (en capitale).

Pour que le script tourne à chaque modification, je pense que faire une action de dossier est la meilleure solution (clique droit sur le dossier en question, puis en bas de la liste)

Tu peux prendre comme exemple le script "ajout - alerte nouvel élément.scpt"


----------



## Gregoryen (21 Janvier 2018)

RE: J'ai trouvé 
	
	



```
find /Users/Gregoryen/Pictures/
```



flotow a dit:


> A moins d'avoir des fichiers de films qui commencent par un point, comme .Tron Legacy.mkv, pas besoin d'avoir -a
> Pour la recursion, il faut utiliser -R (en capitale).



Alors j'ai trouvé une autre commande qui est :

```
find /Users/Gregoryen/Pictures/
```

Par contre si je veux mon HDD externe et que je met 
	
	



```
/Volumes/nom de mon disque
```
 le script ne veux pas se lancer.


----------



## Gregoryen (21 Janvier 2018)

flotow a dit:


> A moins d'avoir des fichiers de films qui commencent par un point, comme .Tron Legacy.mkv, pas besoin d'avoir -a
> Pour la recursion, il faut utiliser -R (en capitale).
> 
> Pour que le script tourne a chaque modification, je pense que faire une action de dossier est la meilleure solution.
> ...


Parfait ! Merci ça marche !


----------



## flotow (21 Janvier 2018)

Gregoryen a dit:


> RE: J'ai trouvé
> 
> 
> 
> ...



Il faut faire précéder les espaces d'un \
Pour find, ça marche aussi. Peut être que le résultat de ls est déjà formaté comme tu veux.


----------



## Gregoryen (21 Janvier 2018)

flotow a dit:


> Il faut faire précéder les espaces d'un \
> Pour find, ça marche aussi. Peut être que le résultat de ls est déjà formaté comme tu veux.



Non ton script est juste parfait ! Merci !
Après sait-tu comment je pourrais faire en sorte que ce fichier texte se mette à jour dès que je rajoute un fichier en temps réel ?


----------



## Gregoryen (21 Janvier 2018)

Et juste par curiosité, est-ce possible de lui mettre un titre de dossier en gras avec une couleur de fond par ex ?

Ou de faire une liste comme ceci ?


----------



## flotow (21 Janvier 2018)

Gregoryen a dit:


> Non ton script est juste parfait ! Merci !
> Après sait-tu comment je pourrais faire en sorte que ce fichier texte se mette à jour dès que je rajoute un fichier en temps réel ?


Va voir le post #2


----------



## Gregoryen (21 Janvier 2018)

flotow a dit:


> Va voir le post #2



Ok merci j'avais pas lu la fin je me suis précipité sur le début.

Je comprend mieux maintenant.

Donc j'ai fait le script pour l'item.

Il faudrais qu'au lieu qu'il m'alerte d'un mouvement il exécute l'application :


```
(*
add - new item alert

This Folder Action handler is triggered whenever items are added to the attached folder.
The script will display an alert containing the number of items added and offering the user
the option to reveal the added items in Finder.

Copyright © 2002–2007 Apple Inc.

You may incorporate this Apple sample code into your program(s) without
restriction.  This Apple sample code has been provided "AS IS" and the
responsibility for its operation is yours.  You are not permitted to
redistribute this Apple sample code as "Apple sample code" after having
made changes.  If you're going to redistribute the code, we require
that you make it clear that the code was descended from Apple sample
code, but that you've made changes.
*)

property dialog_timeout : 30 -- set the amount of time before dialogs auto-answer.

on adding folder items to this_folder after receiving added_items
    try
        tell application "Finder"
            --get the name of the folder
            set the folder_name to the name of this_folder
        end tell
       
        -- find out how many new items have been placed in the folder
        set the item_count to the number of items in the added_items
        --create the alert string
        set alert_message to ("Folder Actions Alert:" & return & return) as Unicode text
        if the item_count is greater than 1 then
            set alert_message to alert_message & (the item_count as text) & " new items have "
        else
            set alert_message to alert_message & "One new item has "
        end if
        set alert_message to alert_message & "been placed in folder " & «data utxt201C» & the folder_name & «data utxt201D» & "."
        set the alert_message to (the alert_message & return & return & "Would you like to view the added items?")
       
        display dialog the alert_message buttons {"Yes", "No"} default button 2 with icon 1 giving up after dialog_timeout
        set the user_choice to the button returned of the result
       
        if user_choice is "Yes" then
            tell application "Finder"
                --go to the desktop
                activate
                --open the folder
                open this_folder
                --select the items
                reveal the added_items
            end tell
        end if
    end try
end adding folder items to
```


----------



## flotow (21 Janvier 2018)

do shell script "ls -R /dir > myfile"

https://developer.apple.com/library...nScriptingGuide/CallCommandLineUtilities.html

Si c'est plus complique qu'un ls avec une redirection, tu peux écrire un script directement.
Cela dit, tu peux aussi regarder ce qu'AppleScript offre pour lister des fichiers etc.
Je ne l'utilise pas tant que ca.


----------



## Gregoryen (21 Janvier 2018)

flotow a dit:


> do shell script "ls -R /dir > myfile"
> 
> https://developer.apple.com/library...nScriptingGuide/CallCommandLineUtilities.html
> 
> ...



Merci énormément pour ton aide !


----------



## Gregoryen (21 Janvier 2018)

J'ai une dernière petite question, si le volume externe est chiffré il ne veux pas fonctionner, comment rendre cela possible ? Merci encore !


----------



## Gregoryen (24 Janvier 2018)

Au travail on m'a parlé du logiciel Hazel qui peux permettre de faire des petits script avec interface et c'est plutôt pratique !

Bon c'est en anglais donc je galère.

Qui sait comment je peux utiliser Hazel pour lui dire que dans mon disque dur externe, quel que soit la modification ( renommer, déplacer un fichier, en créer un ) il m'ouvre ma petite app automator ?

C'est simple mais a force de tester je deviens confus.

Merci ! ^^


----------

