2016-04-29 20 views
0

Ich versuche, eine Datei mit AppleScript zu verschieben. Dies ist der Code ich benutze:Verschieben von Dateien mit AppleScript

on adding folder items to this_folder after receiving these_items 
    repeat with i from 1 to number of items in these_items 
     set this_item to item i of these_items 
     set the item_info to info for this_item 
     set the item_path to the quoted form of the POSIX path of this_item 

... 
... //irrelevant code here 
... 


     tell application "Finder" 
     move POSIX file item_path to POSIX file "/Users/mainuser/Desktop/Books" 
     end tell 

    end repeat 
end adding folder items to 

Wenn ich item_path mit einem normalen Pfad ersetzen, wie /Users/mainuser/Desktop/Test/test.png als es funktioniert super. Was könnte der Grund für mein Problem sein?

Antwort

1

these_items ist ein Array von alias Bezeich weiter Zwang nicht benötigt

tell application "Finder" 
    move this_item to folder "Books" of desktop 
end tell 

die Eigenschaft desktop zeigt immer auf den Desktop des aktuellen Benutzers.

Übrigens: Der Finder akzeptiert keine POSIX-Pfade (Schrägstrich getrennt), nur die nativen HFS-Pfade (Doppelpunkt getrennt).

PS: Der Grund, warum item_path nicht funktioniert, ist das Zitat.
ist es nur in do shell script

1

Gebrauch benötigt:

on adding folder items to this_folder after receiving these_items 
    tell application "Finder" to move these_items to folder "Books" of desktop 
end adding folder items to 

Der after receiving Parameter eine Liste von Apple alias Wert ist, die move Befehl etwas Finder ist bereits kennt und weiß, wie man mit zu arbeiten. Während es für Anwendungsbefehle wie move ungewöhnlich ist, Werte zu akzeptieren, die keine Verweise auf Anwendungsobjekte sind, ist es nicht völlig unbekannt; insbesondere mit Pre-OS X-Apps wie Finder, deren Scripting-Unterstützung vollständig von Hand geschrieben wurde. Entwickler können damit auf eine Weise arbeiten, die für Benutzer hilfreich ist und nicht nur in dummen, standardisierten Frameworks wie Cocoa Scripting von OS X.

Verwandte Themen