Dateien auswählen

M

mkdl

Registriert
Thread Starter
Dabei seit
26.10.2004
Beiträge
1
Reaktionspunkte
0
Hallo,

Ich versuche mir über ein Ordneraktionsscript die Endung einer Datei anzeigen zu lassen, die ich hineinlege.
Bekomme aber immer ne Fehlermeldung:
cant´t get <<class nmxt>> of {alias "HD:Users:ich:Desktop:Ordner:Testdatei1.tif"}.

Das Script:

Code:
on adding folder items to this_folder after receiving added_item
set new_item to added_item
try

tell application "Finder"

set file_extension to name extension of added_item
display dialog "The filename extention of this file is " & file_extension
end tell
on error error_message number error_number
tell application "Finder"
activate
display dialog error_message buttons {"Cancel"} default button 1 giving up after 120
end tell
end try
end adding folder items to

Mit nem Droplet mit diesem Code geht es:

Code:
on open files_
repeat with file_ in files_ 

tell application "Finder"
set filename_extension_ to name extension of file_
display dialog "The filename extention of this file is " & filename_extension_
end tell
end repeat
end open
Kann mir jemand weiterhelfen?

Danke
 
so geht es:

wenn Du Deine beiden Scripts genauer betrachtest, wirst Du feststellen das das zweite (Droplet) eine Repeat Schleife besitzt.

Also baust Du in das erste auch eine Repeat Schleife und schon funktioniert es.

Begründung: wenn Du eine Datei auf dein Droplet schiebst erstellt das Script eine Liste mit den Dateien die Du auf das Droplet geschoben hast. Das heißt es können auch mehr als eine Datei auf das Droplet geschoben werden. Damit nun anstatt der Liste die einzelne Datei abgearbeitet wird, erstellt man diese Repeat schleife. Erst in der Schleifenfunktion füttert er die Varialbe mit einer normalen Dateireferenz anstatt mit einer Liste.
Wenn Du mal mehrere Dateien auf das Droplet schiebst wirst Du merken das er für jede Datei dir den Dialog anzeigen wird.

Und so funktioniert es auch in dem Ordner-Aktion-Script. Wenn etwas in den Ordner geschoben wird erstellt er zuerst eine Liste mit den Dateireferenzen. Erst in der Schleife wird die Variable stets mit einer Dateireferenz gefüttert mit der er nun arbeiten kann.

Deshalb jedes mal der <<Class>>-fehler. Du wolltest eine Dateireferenz bearbeiten aber die Variable ist als Liste deklariert. :)

So funktioniert das ganze dann nach Deinem Wunsch:
on adding folder items to this_folder after receiving added_items
try
tell application "Finder"
repeat with file_ in added_items
set file_extension to name extension of file_
display dialog "The filename extention of this file is " & file_extension
end repeat
end tell
on error error_message number error_number
tell application "Finder"
activate
display dialog error_message buttons {"Cancel"} default button 1 giving up after 120
end tell
end try
end adding folder items to

Du könntest jetzt das Script noch ausbauen für den Fall das Du mehrere Dateien auf einmal dem Ordner hinzufügst. Es könnten dann alle Endungen in EINEM Dialog angezeigt werden anstatt jedes mal ein Dialog nach dem anderen.


mfg glzm0
 
Zurück
Oben Unten