# Création app macos déchargement de carte automatique



## BrianSoum (13 Juillet 2021)

Bonjour à tous,

Je suis à la recherche d'un développeur pour la création d'une petite appli sur MacOS (11.4) permettant la copie automatique de fichiers présents sur une carte SD ou CF lorsqu'elle est montée sur le système. Il faudrait que l'appli copie l'ensemble des fichiers vers un répertoire défini préalablement et les renomme en fonction des fichiers déjà présents.

En somme, au montage d'une carte :

Si le dossier avec la date du jour n'existe pas alors le créer puis copier tous les fichiers de la carte dedans avec un nouveau nom (CP1_ suivi du nom du fichier).

Si le dossier du jour existe, vérifier combien de cartes ont déjà été copiées (CP1, CP2, CP3.......) sur les noms de fichiers (ou dans une bdd?) puis copier tous les fichiers de la carte avec l'ajout du numéro de la carte (CP4 par ex.).

Pour info, les fichiers sur les cartes ont toujours le même chemin et le Volume Name des cartes est aussi toujours le même. Il faudrait pouvoir indiquer en amont le chemin de destination car il peut être sur l'ordi ou vers un NAS.

Pour une raison pratico-pratique si un popup pouvait s'afficher avec le nombre de fichiers déjà copiés et restant à copier, ça serait tip top ! Ou, au moins, une indication comme quoi la copie est terminée.

Des passionnés parmi nous pour répondre à cette demande ? Je suis tout à fait disposé à rémunérer comme il faut cette création.

Sinon, auriez-vous un contact sous la main ?

Merci par avance de vos propositions (en mp).

Bien à vous,
Brian


----------



## edenpulse (13 Juillet 2021)

Pas besoin d'un développeur, Chronosync fait déjà une grande partie de tout ça.  


			https://www.econtechnologies.com/chronosync/overview.html


----------



## BrianSoum (13 Juillet 2021)

edenpulse a dit:


> Pas besoin d'un développeur, Chronosync fait déjà une grande partie de tout ça.
> 
> 
> https://www.econtechnologies.com/chronosync/overview.html


Merci pour cette info mais Chronosync ne répond pas en partie à mon problème.

En effet, il faut impérativement renommer les fichiers copiés dans le dossier de destination avec un numéro ou une lettre incrémentale puisque les fichiers sur les autres cartes ont, très souvent, les mêmes noms.

Actuellement, je créais un répertoire par carte. Lorsque la copie est terminée, je lance un applescript permettant de rajouter le numéro de la carte devant le nom des fichiers.
Lorsque tous les fichiers de toutes les cartes ont été renommés, je les déplace ensuite dans le répertoire racine puis j'efface les répertoires précédemment créés.

C'est long, fastidieux et vraiment pénible quand il y a 5, 6 ou 7 cartes............


----------



## zeltron54 (13 Juillet 2021)

Bonjour,

peut (peu être) se réaliser avec une action de dossier, pour renommer les fichiers...

J'avais créer un script action de dossier pour renommer les copies d'écran, tu pourrais t'en inspirer...





						Numérotation cohérente des captures d'écran
					

Allez un pas à pas d’installation, cela servira certainement à d’autre.  - Ouvrir l’application éditeur de script qui se trouve dans application—> utilitaires. - Faire un copier coller du script dans une fenêtre de l’application - Enregistrer sous : (exemple : Change_nom_capture) sur le bureau -...




					forums.macg.co


----------



## BrianSoum (13 Juillet 2021)

zeltron54 a dit:


> Bonjour,
> 
> peut (peu être) se réaliser avec une action de dossier, pour renommer les fichiers...
> 
> ...



Intéressant !

Cela pourrait solutionner mon problème. Je regarde ça dans la soirée.

Merci pour l'info.


----------



## zeltron54 (13 Juillet 2021)

Pas de problème si besoin d'aide fais signe.


----------



## zeltron54 (13 Juillet 2021)

Après analyse de ton problème:
Avoir un dossier "transfert SD"
Lors de l'insertion d'une carte SD faire un copier,  coller de tous les fichiers vers ce dossier.
Vérifier si un dossier "Date du jour" existe sinon le créer et créer en plus un fichier texte "compteur" dans ce nouveau dossier fichier contenant  "1"
Renommer les fichiers en ajoutant "CP" + le numéro du fichier devant le nom .
A la fin incrémenter le numéro du fichier texte et afficher un message "terminé".


----------



## BrianSoum (14 Juillet 2021)

@zeltron54, malgré mes différents essais, je n'ai pas réussi à obtenir quelque chose de cohérent et fonctionnel. Je ne suis définitivement pas à l'aise avec ce language qui, pourtant, semble très simple d'utilisation...

Ayant quelques compétences plus avancées en python, j'ai commencé par rechercher des infos sur les progressbar et je suis tombé sur la bibliothèque Tkinter parfaitement adaptée à mes besoins : https://www.pythontutorial.net/tkinter/tkinter-progressbar/

En partant de la bibliothèque shutil associé à la progressbar tkinter, je peux mettre à jour en live les informations de copie (nombre de fichiers copiés et restant + pourcentage) dans une fenêtre dessinée à la volée :






A cela, j'ai bien évidemment ajouté le renommage des fichiers copiés en fonction de ceux déjà présents dans le repertoire de destination (CP1, CP2, CP3...). L'avantage de shutil permet de vérifier l'exact copie des fichiers (à la manière d'un rsync) et de changer le nom des nouveaux fichiers au moment de la copie.

Impeccable !

Il ne restait plus qu'à trouver le moyen de lancer automatiquement le script au montage d'une carte. Pour ça, j'avais sous la main l'excellente solution de MacResearch utilisant launchd : https://macresearch.org/tutorial-backups-with-launchd/

Après quelques essais, tout fonctionne parfaitement et rempli exactement les fonctions recherchées.

Encore merci d'avoir pris le temps de me répondre @zeltron54 , @edenpulse !


----------



## zeltron54 (14 Juillet 2021)

Donc problème résolu ! content pour toi


----------

