Finder / name extension Problem mit OSX 10.6

Registriert
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
"Finder hat einen Fehler erhalten: file 1 of folder of
alias \"Macintosh HD:Users:tommy:Desktop:foo.bar\" whose name
extension = \"bar\" kann nicht gelesen werden." number -1728 from
file 1 of folder of alias "Macintosh
HD:Users:tommy:Desktop:foo.bar" whose name extension = "bar"
Was hat sich beim Ansprechen der name extension geändert, bzw. wie muss ich das Script abändern damit es wieder läuft?
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
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
 
Registriert
22.02.06
Beiträge
36
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

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?
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
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
 
Registriert
22.02.06
Beiträge
36
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

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.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Ohne das nachzuprüfen ein kleiner Hinweis:
"Name Extensions" (sprich: "Suffixe") kann man im Finder ein- und ausblenden.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.358
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")
 
Registriert
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.
 

Samsas Traum

Pommerscher Krummstiel
Registriert
24.04.08
Beiträge
3.025
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