2 votes

Automator : Les éléments du filtre Finder sélectionnent les mauvais fichiers

Je voulais une action de dossier Automator pour supprimer automatiquement les anciens téléchargements de mon dossier de téléchargements chaque fois que je télécharge un nouveau fichier (je voulais éviter de faire de cette action une tâche planifiée).

Le flux de travail ressemble à ceci : enter image description here

Lorsque je le teste, il fonctionne bien - il ne sélectionne que les fichiers de plus de 60 jours. Cependant, lorsque je télécharge un nouveau fichier dans le dossier des téléchargements, celui-ci est envoyé à la corbeille.

Qu'est-ce qui se passe ? L'horodatage du nouveau fichier n'est pas correct tant que le téléchargement n'est pas terminé ou quelque chose comme ça ?

EDIT : J'ai découvert que cela supprime le fichier ajouté au dossier. peu importe ce qui se passe . Autrement dit, si je glisse et dépose un nouveau fichier dans le dossier, le flux de travail le supprime même si l'horodatage est d'aujourd'hui.

0 votes

Par exemple, lorsqu'un fichier est en train d'être téléchargé dans Safari, il possède une icône .télécharger et un horodatage de 01/24/1984 3:00 AM (au moins sur la côte Est des Etats-Unis). J'essaierais donc de définir le paramètre Éléments du filtre Finder action à | Trouver le fichier où : Toutes les conditions suivantes sont remplies | L'extension du fichier n'est pas .download | La date de dernière ouverture ne remonte pas aux 60 derniers jours | et voyez si cela fait une différence pour vous.

3voto

grg Points 181593

Le Finder utilise la date kMagicBusyCreationDate pour les fichiers en cours de téléchargement, qui est 08:34:56 le 1946-02-14 (+0000).

Utilisez cette date comme date de création d'un fichier ou d'un dossier pour indiquer qu'il est temporairement occupé (pendant son téléchargement ou son installation, par exemple).

Quelle est la signification de 1946-02-14 08:34:56 ?

Comme cela se situe bien en dehors de votre plage de dates, le dossier est supprimé immédiatement. Vous ne pouvez donc pas utiliser de contrôles basés sur la date pendant le téléchargement des fichiers.

0 votes

Je pense que c'est la première fois que j'ai suivi un lien dans une question vers une autre question et que j'ai fini par voter la question avec le lien ainsi que la question liée et sa réponse acceptée. C'était une lecture intéressante !

0 votes

@user Merci, cette question était la première fois que j'ai fait des questions sur le réseau chaud sur SE !

0 votes

@grgarside Je viens de tester à nouveau en faisant un glisser-déposer d'un fichier nouvellement créé depuis mon bureau vers mon dossier de téléchargements. L'automate script le supprime alors que la date de création est d'aujourd'hui.

2voto

wch1zpink Points 6067

Voici une solution pour contourner complètement Automator. Enregistrez simplement ce script dans le script Editor.App dans votre dossier /Users/votre_shortname/Bibliothèque/Workflows/Applications/Actions de dossier. Une fois que vous faites cela, cette action de dossier script sera disponible pour choisir dans votre menu de configuration des services/acions de dossier dans le Finder en contrôlant + cliquant sur le dossier de téléchargements.

C'est la version à utiliser si vous voulez utiliser script Editor.app

on adding folder items to this_folder after receiving these_items
    tell application "Finder"
        set nameExtensionz to {"download"}
        set deleteFilez to items of (path to downloads folder) whose creation date < ((current date) - (days * 60)) and (name extension) is not in nameExtensionz
        delete deleteFilez
    end tell
end adding folder items to

Si vous n'êtes pas à l'aise avec l'application script Editor, dans l'application Automator vous pouvez ajouter une action run AppleScript et ajouter mon code. Il suffit de regarder la capture d'écran ci-dessous. Vous n'aurez pas à vous soucier de la suppression du nouveau fichier téléchargé.

Il s'agit de la version à utiliser si vous souhaitez ajouter une action AppleScript à une action de dossier de flux de travail Automator.

tell application "Finder"
        set nameExtensionz to {"download"}
        set deleteFilez to items of (path to downloads folder) whose creation date < ((current date) - (days * 60)) and (name extension) is not in nameExtensionz
        delete deleteFilez
end tell

enter image description here

0 votes

Bien que cette solution soit parfaitement valable, la réponse à la question "Pourquoi pas ?" est assez simple : parce que nous ne pouvons pas tous écrire AppleScript, et c'est là tout l'intérêt d'Automator ;)

0 votes

D'après la réponse de grgarside, cela ne va-t-il pas supprimer le fichier pendant le téléchargement ? (Je n'ai pas fait de test).

0 votes

Je viens de le tester sur Google Chrome et il attend que le téléchargement soit terminé. Fonctionne comme un charme

0voto

yogik Points 5

Pas de réponse, mais je suis toujours gêné par ce "bug de MacOS".

Bien que la signification de 1946-02-14 08:34:56 soit vraiment une histoire inspirante, cela ne semble pas du tout être le coupable de ce problème. En utilisant le flux de travail ci-dessous, je vois exactement le même comportement.

Lorsque je déplace un fichier du bureau vers Downloads/, il s'affiche avec une "date de création" et une "date d'ajout" d'aujourd'hui. Je peux le voir clairement dans la vue en liste. MAIS après 10 secondes d'attente, le fichier disparaît - et il est évident en parcourant la liste que "Filter Finder Items", même après 10 secondes, considère le fichier comme /ancien/.

Un bug très étrange.

D'autant plus que le .download ne peut pas être le coupable, car cette précaution n'est pas du tout nécessaire si je crée un flux de travail Automator contenant uniquement le code Applescript suivant (basé sur le code de @wch1zpink ci-dessus mais sans la précaution du .download) - qui fonctionne comme prévu (il ne supprime pas le fichier actuel/ajouté) :

on run {input, parameters}

    tell application "Finder"
        set deleteFilez to items of (path to downloads folder) whose creation date < ((current date) - (days * 45)) and modification date < ((current date) - (days * 45))
        delete deleteFilez
    end tell

    return input
end run

Je peux également voir (dans le menu global de MacOS) que l'action de l'automate n'est lancée qu'après la fin d'un téléchargement plus long...

Workflow with initial uns election of added file and wait

0 votes

Cela ne répond pas vraiment à la question. Si vous avez une autre question, vous pouvez la poser en cliquant sur Posez une question . Vous pouvez également ajouter une prime d'attirer davantage l'attention sur cette question une fois que vous aurez suffisamment réputation . - De la revue

0 votes

Ma contribution ne répond effectivement pas du tout à la question, elle apporte des précisions à une question ouverte. Je l'aurais mise dans un commentaire, ce que je n'ai cependant pas pu faire (pas assez de kudos). En outre, les tentatives de réponse fournies me semblent incorrectes ou du moins incomplètes. Malheureusement, je ne connais pas la réponse à ce problème et je n'ai pu la trouver nulle part sur le web.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X