• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Zugriff auf Datei geht nicht mehr

Sarah Nyn

Kaiser Wilhelm
Registriert
02.06.07
Beiträge
177
Guten Tag,

Mein heutiges Problem dreht sich um den Zugriff auf Dateien per Finder.

Code:
		tell application "Finder"
			open document file dotfile using application file "Graphviz.app" of folder "Applications" of startup disk
		end tell

Darauf kommt das:
„Finder“ hat einen Fehler erhalten: „document file "me:scriptfiles:voodoodot1.dot"“ kann nicht gelesen werden.

Früher ging das genau gleiche Script. Inzwischen habe ich VileFault, äh, FileVault, aktiviert, was ich damals nicht hatte. Allerdings habe ich zum Ausprobieren die Datei an einen nicht verschlüsselten Ort gelegt, was nichts brachte.

Wenn ich die Datei im Finder selbst öffne (öffnen mit->Graphviz) geht es. Lasse ich das "using ..." weg, geht es nicht, es liegt also nicht an der Applikation.

Die Datei ist ein paar Kilobyte gross, enthält ein wenig Text und scheint mir eigentlich auch gesund zu sein.

Am Scripteditor hab ich auch nicht irgendwie rumgepfuscht.

Jemand eine Idee?

Dankeschön!

Grüsse,
Sarah

edit:
Um auszuschliessen, dass das restliche Script etwas blödes macht, habe ich die drei Zeilen in ein neues Script kopiert und nochmal versucht. Ohne Erfolg.
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
dotfile ist eine Variable, oder? Wie ist die denn definiert? Und noch 'ne Frage: Was passiert, wenn Du den Programm-Pfad anders angibst, z.B. als POSIX-Pfad?
 

Sarah Nyn

Kaiser Wilhelm
Registriert
02.06.07
Beiträge
177
Code:
	set homepath to path to home folder as text
	set dotfile to homepath & "scriptfiles:voodoodot1.dot"

Da wird das dotfile definiert.

Ähm, POSIX geht! Irgendwas mit Sicherheit?
 

Peter Maurer

Pommerscher Krummstiel
Registriert
16.03.04
Beiträge
3.077
Ähm, POSIX geht! Irgendwas mit Sicherheit?
Ich versteh's auch nicht. Grade habe ich das Problem spasseshalber mit einer Text-Datei nachgebildet; und siehe da: Das folgende AppleScript funktioniert einwandfrei.

Code:
set homePath to path to home folder as text
set textFile to homePath & "Documents:Anleitungen:Airport.txt"

tell application "Finder"
	open document file textFile using application file "TextEdit.app" of folder "Applications" of startup disk
end tell
Ich hab' tatsaechlich FileVault noch nie aktiviert gehabt, aber dieser Zusammenhang -- so vorhanden -- erscheint mir hoechst seltsam.
 

Sarah Nyn

Kaiser Wilhelm
Registriert
02.06.07
Beiträge
177
Dieses Script funktioniert bei mir nicht, nur mit dem POSIX Pfad.

Was ich auch noch gemacht habe, fällt mir ein, ist, den sicheren virtuellen Speicher zu verwenden.

Dankeschön! Zumindest geht es nun und ich weiss, was ich machen kann, sollte das wieder einmal ein Problem sein.

Edit:

Beitrag Nummer 2^7 ! Fast hätte ich ihn verpasst.
 

Sarah Nyn

Kaiser Wilhelm
Registriert
02.06.07
Beiträge
177
Eins noch:

Als Resulat von "get path to home folder as text" bekomme ich nur "me:" . Sollte da nicht vor dem Username noch der Pfad von der HD aus stehen, also in meinem Fall "Macintosh HD:Users:" ? Setze ich das davor, gibt es kein Problem.

Aber ich bin mir ganz sicher, dass das früher auch so ging...

Vielleicht doch etwas mit FileVault, da der Userordner quasi ein eigenes Image ist und irgendjemand diese Info für sich behält? Irgendwann werd ich's ausprobieren...

edit: Ohne VileFault ist der Pfad vollständig. Demnach müsste man immer, wenn man ein allgemeingültiges Script schreiben möchte irgendwie herausfinden, ob VF aktiv ist. Oder es gibt eine bessere Lösung. Zum Glück liegt das nicht in meiner Absicht.

edit2.0:
"POSIX path of (path to home folder)" müsste immer "/Users/username/" ergeben, unabhängig von VF. Garantieren kann ich's nicht, aber ich denke das ist es. Nur sind die '/' blöd zum weitermachen. Und man hat den Namen der HD nicht mit drin.


edit3.0: *lufthol*
Mögliche Lösung:
Falls "path to home folder" den "path to users folder" enthält, ist der "path to home folder" vollständig. Falls nicht, muss man beide zusammenhängen.

Ist vermutlich viel einfacher als das und ich stell mich nur blöd an. Naja.

edit4.0:

So, nur der Vollständigkeit wegen:
Code:
if (path to home folder as text) contains (path to users folder as text) then
	set homepath to path to home folder as text
else
	set homepath to ((path to users folder) as text) & (path to home folder) as text
end if

Das geht mit und ohne VileFault. Wie gesagt vielleicht nicht die beste Lösung, aber es geht.
 
Zuletzt bearbeitet: