Bonjour,
Ignare en apple script je souhaiterais développer un petit script me permettant d'importer des images et video d'un dossier (carte SD en l'occurence)
vers des sous dossier en prenant en compte que si il y a plus de 20min d'écart entre 2 fichiers il faut passer au sous dossier suivant
et au passage nommé les sous dossier selon la logique suivante
YY-DD-MM_1
YY-DD-MM_2
YY-DD-MM_...
pour être honnête j'ai essayer l'option de facilité en demandant a chat GPT mais le code ne copie pas les fichiers même s'il m'annonce un succès du run
le code en question.
je comprend la logique de code mais pas plus.
Ignare en apple script je souhaiterais développer un petit script me permettant d'importer des images et video d'un dossier (carte SD en l'occurence)
vers des sous dossier en prenant en compte que si il y a plus de 20min d'écart entre 2 fichiers il faut passer au sous dossier suivant
et au passage nommé les sous dossier selon la logique suivante
YY-DD-MM_1
YY-DD-MM_2
YY-DD-MM_...
pour être honnête j'ai essayer l'option de facilité en demandant a chat GPT mais le code ne copie pas les fichiers même s'il m'annonce un succès du run
le code en question.
je comprend la logique de code mais pas plus.
AppleScript:
-- Function to convert Unix timestamp to desired subfolder format
on timeToSubfolder(creationTime)
set {year:y, month:m, day:d, hours:h, minutes:min} to creationTime
return (text -2 thru -1 of (y mod 100)) & "-" & (text -2 thru -1 of ("0" & m)) & "-" & (text -2 thru -1 of ("0" & d)) & "_" & (text -2 thru -1 of ("0" & h))
end timeToSubfolder
-- Select source folder
set sourceFolder to choose folder with prompt "Select Source Folder"
set sourceLabel to "Source Folder: " & (sourceFolder as text)
-- Select destination folder
set destinationFolder to choose folder with prompt "Select Destination Folder"
set destinationLabel to "Destination Folder: " & (destinationFolder as text)
-- Copy files
try
tell application "Finder"
set previousCreationTime to current date
set timeThreshold to 20 * minutes -- 20 minutes threshold
repeat with aFile in entire contents of sourceFolder
set creationTime to creation date of aFile
if (creationTime - previousCreationTime) is greater than timeThreshold then
set sourcePath to POSIX path of (aFile as text)
-- Calculate the subfolder name
set subfolderName to timeToSubfolder(creationTime)
set destinationSubfolder to (destinationFolder & "/" & subfolderName)
-- Create the destination subfolder if it doesn't exist
if not (exists folder destinationSubfolder) then
make new folder at destinationFolder with properties {name:subfolderName}
end if
-- Copy the file to the destination subfolder
set destinationPath to POSIX path of (destinationSubfolder as text)
do shell script "cp -R " & quoted form of sourcePath & space & quoted form of destinationPath
set previousCreationTime to creationTime
end if
end repeat
end tell
display dialog "Files copied successfully." buttons {"OK"} default button "OK"
on error errMsg
display dialog "An error occurred: " & errMsg buttons {"OK"} default button "OK" with icon 2
end try