Erhalten Sie eine nicht anerkannte Dateierweiterung in AppleScript
-
25-10-2019 - |
Frage
Ich habe mich gefragt, wie man nur die Dateierweiterung aus einer Zeichenfolge zurückgibt. Ich habe die Variable "Set Variable" ausprobiert, um die Erweiterung von ... zu benennen ", detailliert in Dies Frage, aber das scheint nur für anerkannte Erweiterungen zu funktionieren. Die Idee ist, Dateien mit der Erweiterung '.meta' in ihre eigene Sammlung zu sortieren.
Wie ich jetzt aussieht, sieht ich aus
tell application "Finder'
set everyName to name of every item in entire contents of this_folder
end tell
set metaFiles to {}
repeat with n from 1 to count of everyName
set currentName to item n of everyName
set currentExt to last word of currentName --this assignment fails
if currentExt is "meta" then
set end of metaFiles to currentExt
end if
end repeat
Ich bin brandneu im AppleScript, daher schätze ich jede Hilfe/Richtung. Vielen Dank!
Bearbeiten: Hacky Lösung
Ich habe dies gelöst, indem ich die beschriebene geteilte Funktion verwendete hier den Dateinamen nach jeder Periode aufbrechen. Ich schnappte mich die letzte Zeichenfolge, stellte sicher, dass sie nicht die gleiche wie die erste Zeichenfolge war, falls es keine Periodenzeichen gab, und speicherte dann den entsprechenden Dateinamen.
Lösung
Der Name enthält die Dateierweiterung, unabhängig davon, ob der Finder sie erkennt oder nicht. Sortieren Sie also einfach den Namen wie diesen ...
tell application "Finder"
set metaFiles to (every item in entire contents of this_folder whose name ends with "meta") as alias list
end tell
Andere Tipps
Wenn Sie keine Namenserweiterung erhalten, stellen Sie sicher, dass es tatsächlich eine gibt und Sie nicht das Ende des Namens betrachten. Wenn Sie Dateien verschieben möchten, müssen Sie auch den Pfad und nicht nur den Namen erhalten. Ich denke nicht, dass es auch ist, dass Sie eine Liste Ihrer Erweiterungen erstellen, die Sie wollen - mehrere verschiedene Zeichen werden für Wortgrenzen verwendet, aber eine Periode ist keine davon.
Fragen Sie nicht einfach den Finder nach Ihren Dateiartikeln?
tell application "Finder"
set metaFiles to (every item in entire contents of this_folder whose name extension is "meta") as alias list
end tell