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

Zugriff auf Datei geht nicht mehr

Dieses Thema im Forum "AppleScript" wurde erstellt von Sarah Nyn, 11.09.07.

  1. Sarah Nyn

    Sarah Nyn Kaiser Wilhelm

    Dabei seit:
    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:
    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.
     
  2. Peter Maurer

    Peter Maurer Carmeliter-Renette

    Dabei seit:
    16.03.04
    Beiträge:
    3.274
    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?
     
  3. Sarah Nyn

    Sarah Nyn Kaiser Wilhelm

    Dabei seit:
    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?
     
  4. Peter Maurer

    Peter Maurer Carmeliter-Renette

    Dabei seit:
    16.03.04
    Beiträge:
    3.274
    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.
     
  5. Sarah Nyn

    Sarah Nyn Kaiser Wilhelm

    Dabei seit:
    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.
     
  6. Sarah Nyn

    Sarah Nyn Kaiser Wilhelm

    Dabei seit:
    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.
     
    #6 Sarah Nyn, 11.09.07
    Zuletzt bearbeitet: 13.09.07

Diese Seite empfehlen