Supprimer des fichiers avec AppleScript à la corbeille ou de façon permanente
Je suis en train d'écrire un script dans lequel je veux insérer un sous-programme pour supprimer les fichiers spécifiés. Avec un drapeau je souhaite contrôler si le fichier est déplacé vers la corbeille ou supprimé définitivement.
En fait mon script ressemble à ceci:
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
Maintenant, je veux savoir si ce cas est de corriger la mesure ou il y a peut-être un autre Finder de commande ou un paramètre pour la commande de suppression que j'ai oublié donc je vais être en mesure de simplifier le script ci-dessus?
OriginalL'auteur altralaser | 2014-07-13
Vous devez vous connecter pour publier un commentaire.
AppleScript est un tempérament de la bête, et le diable est souvent dans les détails.
Tout @adayzdone réponse fournit l'essentiel de l'aiguille de l'utilisation de la
System Events
applicationdelete
de commande pour obtenir la suppression définitive du travail, la syntaxe exacte prend de l'essai et de l'erreur:Mise en garde: Ce gestionnaire fonctionne avec des fichiers et des dossiers - le ciblage d'un dossier avec
allowUndo
ensemble defalse
donc supprime définitivement ce dossier de toute la sous-arborescence.Sur OS X 10.9.4 j'ai eu à faire ce qui suit pour faire ce travail:
Finder
contexte: Dû changerPOSIX file theFile
àtheFile as POSIX file
(postfix forme) - ne me demandez pas pourquoi.System Events
contexte: à l'Aide de "cast"alias
avec le chemin POSIX fourni est la seule forme de la commande qui a fonctionné pour moi.Cela dit, un peu modifier à votre fonction d'origine rendrait le travail, trop (et à moins que vous supprimer de nombreux fichiers un par un, la performance ne sera probablement pas):
Noter, cependant, que l'utilisation de
rm
ne fonctionne qu'avec fichiers - si vous voulez l'étendre à des dossiers, aussi, utiliserrm -rf
au lieu de la même bémol, ré supprimer définitivement l'ensemble de la sous-arborescences s'applique.Notez l'utilisation de
quoted form of
, qui passe en toute sécurité le fichier chemin d'accès à la coquille, l'encodage des caractères tels que des espaces correctement.OriginalL'auteur mklement0
Vous pouvez utiliser les Événements du Système pour supprimer définitivement un fichier.
OriginalL'auteur adayzdone
le finder affiche uniquement les supprimer avec un rédacteur de devis pour le fichier , pas d'autres options sont disponibles via le finder
comme adayzdone dit que vous pouviez utiliser les événements du système pour supprimer définitivement un élément.
Ces titres sont de la "Finder" une "des événements du système de" dictionnaires juste allez dans le menu fichier dans applescript et choisissez ouvrir un dictionnaire. Un autre bon regarder à travers l'est "standard Ajouts"
J'espère que cela vous aide à vous 🙂
OriginalL'auteur mcgrailm