Ajouter extension

@magicPDF
Bonjour,

J’ai profité du long pont pour analyser quelques fichiers avec différentes extensions.

Les fichiers qui sont reconnus et traités par le script:
pdf, jpeg, png, bmp, mp4, docx, xlsx, flac, rtf, jpg (jpeg), gif, doc, xls, psd, svg, txt, avi, mkv, mov, mp3, zip, rar, tar, epub, pps et ppt (renommé xxx.pps)


Les fichiers “ai” sont renommés “.pdf” (ils sont renseignés comme tel dans le fichier !)
Les fichiers “numbers” et “pages” sont renommés “.zip”
Les fichier .dmg, fmp12 (filemaker), 4db (sgbd 4d ACI), indd (indesign), pict, cwk, sont tous vus de la même manière (octet-stream) je les ai renommés "xxx.indd"

Si d’autres type de fichiers sont trouvés, il sera ajouté au nom du fichier le texte vu et récupéré dans le fichier exemple: (Nom_du_fichier.xxxxxxxxx)

Dis moi si tu as d’autres extensions pour lesquelles tu voudrais vérifier si leurs traitements est possible.

Bon tests…

Bloc de code:
--remet les extensions au nom de fichier
-- sont traités --> pdf, jpeg, png, bmp,  mp4, docx, xlsx, flac, rtf, jpg (jpeg), gif, doc, xls, psd, ai (renommé en pdf), indd, svg, txt, avi, mkv, mov, mp3, zip, rar, tar, epub, pps et ppt (renommé xxx.pps)
--les fichiers Numbers ainsi que les fichiers Pages sont renommés xx.zip
--Attention les fichier .dmg, fmp12 (filemaker), 4db (sgbd 4d ACI), indd (indesign), pict, cwk,  sont tous vus de la même manière je les ai renommés "xxx.indd"

tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers sans extension"
    my inspecter(Chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            set lefichier to chaque_fichier
            set AppleScript's text item delimiters to {""}
            set nom to name of chaque_fichier --récupère le nom du fichier
            set extens to document file nom in un_dossier --recupere l extension du fichier
            set lextension to name extension of extens
            if lextension is not "" then
            else
                set nomcourt to nom
            end if
            set chaque_fichier to chaque_fichier as string
           
            if lextension is "" then
                set genre to do shell script "file --mime-type " & quoted form of POSIX path of chaque_fichier
                set sauv to AppleScript's text item delimiters
                set AppleScript's text item delimiters to {"/"}
                set lextens to last text item of genre
               
                set AppleScript's text item delimiters to {"."}
                set dernier to last text item of lextens
                set lextens to dernier
                set AppleScript's text item delimiters to sauv
                if dernier = "document" then set lextens to "docx"
                if dernier = "sheet" then set lextens to "xlsx"
                if dernier = "msword" then set lextens to "doc"
                if dernier = "ms-excel" then set lextens to "xls"
                if dernier = "photoshop" then set lextens to "psd"
                if dernier = "octet-stream" then set lextens to "indd"
                if dernier = "plain" then set lextens to "txt"
                if dernier = "x-msvideo" then set lextens to "avi"
                if dernier = "x-matroska" then set lextens to "mkv"
                if dernier = "quicktime" then set lextens to "mov"
                if dernier = "mpeg" then set lextens to "mp3"
                if dernier = "x-rar" then set lextens to "rar"
                if dernier = "epub+zip" then set lextens to "epub"
                if dernier = "ms-powerpoint" then set lextens to "pps"
                if dernier = "x-ms-bmp" then set lextens to "bmp"
                if dernier = "x-tar" then set lextens to "tar"
                if dernier = "svg+xml" then set lextens to "svg"
               
               
                set lenewfichier to lefichier as string
                set newnom to nom & "." & lextens
                set name of lefichier to newnom
                set lenewfichier to lenewfichier & "." & lextens as alias
                set extension hidden of lenewfichier to false
               
            end if
        end repeat
       
        -- traitement des dossiers :
        set les_dossiers to folders of un_dossier
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier)
        end repeat
    end tell
   
end inspecter
tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
La suite...

Je viens de retrouver des fichiers au format postscript .eps et ancien illustrator 1.1 qui s'ouvre avec illustrator 2021.
Pour les gérer tu ajoutes une ligne à la suite de : (if dernier = "svg+xml" then set lextens to "svg") la ligne :
if dernier = "postscript" then set lextens to "ai"

Je continue mes recherches LOL ! :D
 
Bonjour,
@magicPDF

As-tu eu le temps de tester ?
As-tu d'autres types de fichiers à ajouter ?
Je réitère, attention à l'ajout de l'extension "indd" qui est ajoutée à beaucoup de types de fichiers...
 
waou ! 3421 Fichiers quand même !
Bon 40% de fait, je suppose que ce sont les jpg, png, pdf, et autres de la liste des reconnus

Dans les 2041 restant, ils sont tous avec .indd ou tu as autre chose ?
 
A priori tous ces .indd sont en fait des images car ces fichiers commencent presque tous par : ‰PNG
Même si je change l'extension Photoshop refuse de les ouvrir.

Mais ce n'est pas très important, j'ai récupéré l'essentiel : les PDF, les .TXT et les .JS (JavaScript), auxquels curieusement le script a attribué le suffixe ".x-c++"

Merci encore.
 
Comme la plupart des ces fichiers suffixés ne s'ouvraient pas et sont inexploitables j'ai revu ma copie.
En fait ce sont des fichiers rapatriés par FTP depuis un serveur, ce sont toutes les pièces jointes de l'ancienne version du forum abracadabraPDF, et j'ai appris en furetant qu'il fallait les télécharger en mode BIN pour qu'ils soient exploitables.
Ce que j'ai fait.

Après utilisation de ton script sur ces nouveaux fichiers il n'y en a plus qu'un seul fichier .indd (en fait c'est un .idml), tous les autres sont correctement suffixés (sauf 5 fichiers .js et 1 .sla) et jusqu'ici tous ceux que j'ai essayé se sont ouverts.

:up:
 
Content pour toi ! :up: :coucou:
 
  • J’aime
Réactions: magicPDF