Löschen von Dateien mit AppleScript in den Papierkorb oder endgültig einzustellen
Schreibe ich ein AppleScript in das ich einfügen möchte, ein Unterprogramm zum löschen angegebenen Dateien. Mit einem flag, das möchte ich kontrollieren ob die angegebene Datei wird in den Papierkorb verschoben oder dauerhaft gelöscht werden.
Eigentlich mein Skript sieht wie folgt aus:
on MyDeleteProc(theFile, allowUndo)
if allowUndo then
tell application "Finder" to delete POSIX file theFile
else
do shell script "rm " & theFile
end if
end MyDeleteProc
Nun möchte ich wissen, ob dieser Fall richtig so weit oder gibt es vielleicht ein anderes Finder-Befehl oder einen parameter für den Befehl löschen, habe ich übersehen, damit ich in der Lage, die Vereinfachung der obigen Skript?
InformationsquelleAutor altralaser | 2014-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
AppleScript ist ein temperamentvolles Tier, und der Teufel steckt oft im Detail.
Während @adayzdone Antwort gibt die entscheidenden Zeiger - Verwendung der
System Events
Anwendungdelete
Befehl zur dauerhaften Löschung, der die genaue syntax dauert Versuch und Irrtum:VORBEHALT: Diese Prozedur funktioniert sowohl mit Dateien und Ordnern - für eine Ordner mit
allowUndo
eingestelltfalse
daher löscht diesen Ordner den gesamten Teilbaum.Auf OS X 10.9.4 ich musste Folgendes tun, um diese Arbeit zu machen:
Finder
Kontext: ändern MusstePOSIX file theFile
zutheFile as POSIX file
(postfix-form) - frag mich nicht warum.System Events
Kontext: Mit "cast"alias
mit der POSIX-Pfad zur Verfügung gestellt wird, die einzige form des Befehls, die für mich gearbeitet.Sagte, ein wenig zwicken, um Ihre ursprüngliche Funktion würde es auch funktionieren (es sei denn, Sie löschen Sie viele Dateien eine nach der anderen, die Leistung wahrscheinlich nicht so wichtig):
Beachten Sie jedoch, dass nur mit
rm
funktioniert nur mit Dateien - wenn Sie wollten, um es zu erweitern, um Ordner zu verwendenrm -rf
statt - die gleichen VORBEHALT wieder dauerhaft löschen ganzer Teilbäume gilt.Beachten Sie die Verwendung von
quoted form of
, die sicher übergibt den Pfad der Datei, die shell, die Codierung von Zeichen wie Leerzeichen richtig.InformationsquelleAutor mklement0
Können Sie System-Ereignisse, um eine Datei dauerhaft zu löschen.
InformationsquelleAutor adayzdone
finder zeigt nur löschen mit einem Bezeichner für die Datei , keine anderen Optionen verfügbar sind Sie durch den Sucher,
wie adayzdone sagte, Sie könnte verwenden Sie die system-Ereignisse dauerhaft ein Element zu löschen.
Diesen Bildschirm Bildunterschriften sind aus dem "Finder" "system events" Wörterbücher nur springen im Menü Datei in applescript und wählen Sie " öffnen Wörterbuch. Ein weiteres gutes Aussehen, durch die "standard Additions"
Ich hoffe das hilft dir 🙂
InformationsquelleAutor mcgrailm