1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Finder / name extension Problem mit OSX 10.6

Dieses Thema im Forum "AppleScript" wurde erstellt von interpreter, 29.03.10.

  1. interpreter

    Dabei seit:
    22.02.06
    Beiträge:
    36
    Hallo,

    nach einem Upgrade von 10.4 -> 10.6 funktioniert das Abfragen der name extension per Applescript nicht mehr. Folgendes kleines Snippet setzt die Datei "foo.bar" auf dem Desktop vorraus:
    Code:
    tell application "Finder"
        set id_file to first file of (folder of alias "Macintosh HD:Users:tommy:Desktop:foo.bar") whose name extension is "bar"
        log id_file
    end tell
    Unter 10.4 lautet die Ausgabe "(*document file foo.bar*)", unter 10.6 erhalte ich die Fehlermeldung
    Was hat sich beim Ansprechen der name extension geändert, bzw. wie muss ich das Script abändern damit es wieder läuft?
     
  2. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    ich sage es kurz: Dein AS ist total falsch.

    Du gibst den Pfad zu einer Datei und willst von dieser Datei alle Dateien, die eine bestimmte Endung haben.
    Das hat auch in 10.4 nicht funktioniert.

    Code:
    tell application "Finder" to return (every file of (path to desktop folder) whose name extension is "txt")
    
    Viele Grüße
     
  3. interpreter

    Dabei seit:
    22.02.06
    Beiträge:
    36
    Mein Skript sucht im Ordner zu einer Datei die Datei mit der Extension "bar". Ich konnte das Problem inzwischen soweit eingrenzen, das der Finder in MacOSX 10.6 nicht mehr jede Extension findet. Wenn auf dem Desktop die Datei foo.bar existiert, liefert dein abgeändertes Snippet
    Code:
    tell application "Finder" to return (every file of (path to desktop folder) whose name extension is "bar")
    unter 10.4
    Code:
    {document file "foo.bar" of folder "Desktop" of folder "tommy" of folder "Users" of startup disk of application "Finder"}
    aber unter 10.6
    Code:
    {}
    zurück. Muss ich "meine" selbst eingeführte Extension evtl. erst dem System bekanntmachen und wo mache ich das?
     
  4. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    Nimm den Weg des geringsten Wiederstandes:
    Code:
    tell application "Finder" to return (every file of (path to desktop folder) whose name ends with ".bar")
    
    Viele Grüße
     
  5. interpreter

    Dabei seit:
    22.02.06
    Beiträge:
    36
    Hallo,

    vielen Dank, das hilft erstmal weiter. Ich setz den Thread vorerst noch nicht auf gelöst, evtl. hat jemand noch eine Idee weshalb die name extension Variante nicht mehr läuft.
     
  6. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.903
    Ohne das nachzuprüfen ein kleiner Hinweis:
    "Name Extensions" (sprich: "Suffixe") kann man im Finder ein- und ausblenden.
     
  7. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    Hallo interpreter!

    Was der Bauer Finder nicht kennt, das isst er nicht
    Nimm "System Events". Das isst alles.

    Davon mal abgesehen, war dein ursprüngliches Anliegen nicht ein anderes und der Pfad nur ein Beispielpfad?
    Oder geht es wirklich um den Desktop und um "every file"? Falls doch nicht, so würde ich mit "container of" arbeiten ...
    Geht aber bestimmt auch anders:

    Code:
    tell application "Finder"
    	set x to (container of item "Pfad:zu:foo.bar") as text
    end tell
    tell application "System Events" to return (first file of folder x whose name extension is "bar")
     
  8. interpreter

    Dabei seit:
    22.02.06
    Beiträge:
    36
    @sedna: Es ist ein Beispielskript was eigentlich nichts mit dem Desktop zu tun hat, es sollte aber für jedermann ohne grossen Aufwand nachvollzogen werden können. Mein Hintergrund ist der, das ein Asbach-Uralt Programm (ich glaube von 2005) nach einen Update nicht mehr lief, weil sich offensichtlich das Verhalten der name extension im Finder geändert hat. Ich hatte gehofft das irgendeine Stellschraube im System das alte Verhalten wieder herstellt, aber ich werde wohl nicht darum herumkommen das Projekt per XCode neu zu kompilieren.
     
  9. Samsas Traum

    Samsas Traum Pommerscher Krummstiel

    Dabei seit:
    24.04.08
    Beiträge:
    3.030
    Also ich gehe wie Rastafari stark davon aus, dass es sich bei .bar nicht um die extension der Datei handelt, sondern lediglich das mit "." abgetrennte Ende des Dateinamens. Ich vermute mal das die wirkliche Extension .txt oder .rtf sein wird.

    Um ganz sicher zu gehen was AS in Verbindung mit dem Finder erwarten um die Datei zu finden, würde ich doch mal

    Code:
    tell application "Finder" to return (every file of (path to desktop folder) whose name ends with ".bar")
    
    die Datei via AS nehmen, und als nächstes die name extension ausgeben lassen.

    Also etwa so:

    Code:
    tell application "Finder"
    	set datei to (the first file of (path to desktop folder) whose name ends with ".bar")
    	set endung to the name extension of datei
            return endung
    end tell
    
     

Diese Seite empfehlen