Dateien auswählen

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von mkdl, 26.10.2004.

  1. mkdl

    mkdl Thread Starter MacUser Mitglied

    Beiträge:
    1
    Zustimmungen:
    0
    MacUser seit:
    26.10.2004
    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
     
  2. glzm0

    glzm0 MacUser Mitglied

    Beiträge:
    858
    Zustimmungen:
    8
    MacUser seit:
    16.03.2003
    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
     
Die Seite wird geladen...