Recherche

FlyingFiles a deux fenêtres de recherche : Rechercher… pour trouver des fichiers selon des critères, et Rechercher les modifications… pour trouver les fichiers modifiés récemment et les copier ailleurs. Les deux cherchent dans le dossier du panneau actif — sur le disque, dans une archive ou sur un serveur.

Aucune des deux fenêtres ne bloque l'application : vous pouvez continuer à travailler dans les panneaux pendant qu'elle reste ouverte. Une fenêtre fermée retient ses résultats ; si vous la rouvrez alors que le panneau actif affiche un autre dossier, elle repart d'une liste vide.

Outils → Rechercher…

Critères

Un critère précédé d'une case ne s'applique que si vous la cochez. Tous les critères cochés doivent être remplis en même temps.

CritèreOptions
Nom (coché par défaut)Masque (*, ?, _), Contient, Commence par, Se termine par, Égal à ; le masque par défaut est *
TypeFichiers et dossiers, Fichier, Dossier, Lien symbolique, Autre
ExtensionContient, Commence par, Se termine par, Égal à, Masque (*, ?, _) ; saisissez-la sans le point (pdf)
Taillesupérieur à, inférieur à, égal, différent + un nombre + o, Ko, Mo, Go
Dernière modificationles mêmes opérateurs + une date prise au calendrier et une heure
AfficherToutes, Visibles seules, Cachées seules
Propriétaire contient, Groupe contient, Droits contiennentun fragment de texte, par ex. rwx
Contenu du fichierContient, Égal à, Masque (*, ?, _) + texte

Interrupteurs :

  • Respecter la casse — par défaut, la casse n'a pas d'importance ;

  • Rechercher dans les sous-dossiers — activé par défaut ;

  • Tenir compte du fichier .ffignore — ignore les éléments couverts par les règles .ffignore du dossier où vous cherchez.

Dans un masque, * remplace une suite quelconque de caractères, et ? comme _ un seul caractère. Exemple : rapport_202?.*.

Astuce : La recherche dans le contenu lit en entier chaque fichier correspondant, comme du texte UTF-8. Sur un serveur ou avec de gros fichiers, restreignez d'abord la recherche par nom, extension ou taille.

Résultats

  • Rechercher lance la recherche ; pendant qu'elle tourne, le bouton devient Annuler, et sous la liste vous lisez « Recherche… trouvés : 120 ».

  • Colonnes : Nom, Chemin (relatif au dossier où vous cherchez), Type, Taille, Modifié.

  • Un double clic sur un résultat emmène le panneau depuis lequel vous avez cherché jusqu'au dossier qui contient ce fichier et y place le curseur.

  • Retirer de la liste retire les lignes choisies des résultats (les fichiers restent sur le disque).

  • Esc arrête une recherche en cours ; appuyée à nouveau, elle ferme la fenêtre.

Rechercher les modifications

Outils → Rechercher les modifications… ou Cmd+F2 / Alt+F2.

Cette fenêtre est faite pour la tâche « copier ce que j'ai modifié depuis hier » — par exemple envoyer sur le serveur les fichiers modifiés d'un site, ou transférer le travail en cours sur une clé USB.

Trouver les modifications

  1. Dans le panneau actif, ouvrez le dossier où vous travaillez (par ex. le dossier du projet). Dans l'autre panneau, ouvrez la destination qui a la même structure (par ex. le même projet sur le serveur).

  2. Ouvrez Rechercher les modifications….

  3. Réglez Rechercher les modifications des dernières : sur un nombre et une unité : minutes, heures, jours, mois (30 jours chacun) ou années (365 jours chacune).

  4. Cochez Rechercher aussi dans les sous-dossiers si nécessaire (décoché par défaut), et éventuellement Tenir compte du fichier .ffignore.

  5. Cliquez sur Rechercher.

La liste ne contient que des fichiers (pas de dossiers) modifiés pendant cette période : Nom, Chemin, Taille, Modifié.

Nettoyer la liste

  • Retirer de la liste — les lignes choisies ne seront pas copiées.

  • Ajouter le fichier à .ffignore — ajoute les fichiers choisis aux règles .ffignore du dossier où vous cherchez, pour qu'ils ne reviennent pas la prochaine fois.

  • Ajouter le dossier à .ffignore — ajoute les dossiers des fichiers choisis (disponible pour les fichiers situés dans des sous-dossiers).

Quand Tenir compte du fichier .ffignore est activé, les fichiers couverts par les nouvelles règles disparaissent aussitôt de la liste.

Copier les modifications

  1. Laissez Afficher les modifications coché si vous voulez vérifier le plan avant la copie (recommandé).

  2. Cliquez sur Copier. L'application vérifie le dossier de l'autre panneau : pour chaque fichier, la destination est le même chemin relatif (src/app.js → <autre panneau>/src/app.js).

  3. La question dépend du résultat :

    • « L'arborescence du panneau de destination correspond. Copier … et remplacer les fichiers existants à destination ? »

    • « L'arborescence du panneau de destination ne correspond pas à la liste des modifications. Copier quand même … et recréer les sous-dossiers manquants de la liste ? » — un signe que l'autre panneau n'est peut-être pas au bon endroit.

    La réponse par défaut est Non.

  4. Avec Afficher les modifications activé, la fenêtre Confirmer les modifications s'ouvre avec les colonnes Copier (case à cocher), Chemin, Opération (« Remplacer le fichier », « Créer le fichier », « Créer les dossiers et le fichier »), Source et Destination. Décochez ce que vous ne voulez pas copier et cliquez sur Confirmer. Si vous cochez la case Réduire les fichiers, à côté des boutons, les fichiers PHP arrivent à destination sans commentaires ni espaces inutiles (plus de détails). Un clic sur un en-tête trie le tableau (un deuxième clic inverse l'ordre, un troisième revient à l'ordre de la liste des modifications), et tirer le bord droit d'un en-tête change la largeur de la colonne. Le tableau des résultats de la fenêtre Rechercher les modifications fonctionne de la même façon ; les largeurs de colonnes survivent à un redémarrage.

  5. Les fichiers sont copiés par-dessus les fichiers existants, avec leurs dates conservées et les dossiers manquants créés. La progression, le bilan et la liste des éléments en échec fonctionnent comme dans une copie ordinaire. Après une copie réussie, la fenêtre Rechercher les modifications se ferme.

Attention : Copier les modifications remplace les fichiers à destination sans la fenêtre des conflits. Vérifiez le plan dans Confirmer les modifications, surtout quand l'application signale une arborescence qui ne correspond pas.

Réduire les fichiers

La case Réduire les fichiers de la fenêtre Confirmer les modifications fait arriver les fichiers PHP à destination sans commentaires, lignes vides, indentation ni espaces inutiles. Ils fonctionnent de la même façon, mais prennent moins de place. Le gain dépend du fichier : c'est le code riche en commentaires qui y gagne le plus, et ce sont les modèles contenant beaucoup de HTML qui y gagnent le moins, car le HTML reste tel quel. C'est une fonction à l'essai, qui ne concerne pour l'instant que les fichiers PHP (.php, .phtml, .php3, .php4, .php5, .php7, .php8).

  1. Dans la fenêtre Rechercher les modifications, laissez Afficher les modifications coché et cliquez sur Copier.

  2. Répondez Oui à la question sur la copie.

  3. Dans la fenêtre Confirmer les modifications, cochez Réduire les fichiers (à gauche des boutons). La colonne Opération ajoute « (réduit) » aux fichiers PHP, par ex. « Remplacer le fichier (réduit) ».

  4. Cliquez sur Confirmer.

La case est décochée à chaque ouverture de la fenêtre : il faut donc activer la réduction à chaque fois. Sans Afficher les modifications, la fenêtre Confirmer les modifications ne s'ouvre pas et les fichiers sont copiés sans réduction.

Ce qui arrive aux fichiers :

  • Dans le code PHP disparaissent tous les commentaires (/** … */ compris), les lignes vides, l'indentation et les fins de ligne ; une espace ne reste que là où elle est nécessaire. Le code PHP tient ensuite sur une seule ligne ; une fin de ligne ne reste qu'après un bloc heredoc ou nowdoc et après un attribut #[…].

  • Le HTML entre les balises PHP, les chaînes de caractères ainsi que les blocs heredoc et nowdoc restent identiques au caractère près — la page affiche la même chose qu'avant la réduction.

  • Les fichiers source ne changent pas. Seule la copie à destination est réduite ; elle reçoit la date de modification de l'original.

  • Les autres fichiers de la liste sont copiés sans modification.

  • La réduction fonctionne aussi bien lors d'un envoi vers un serveur FTP ou SFTP que lors d'une copie sur le disque.

Après la copie, le titre de la fenêtre indique combien de fichiers ont été réduits et de combien, par ex. « 6 éléments copiés. Réduction de 5 fichiers : de 48.2 KB à 21.7 KB (55 % de moins). » Quand aucun fichier PHP ne figurait parmi les fichiers copiés : « Aucun fichier à réduire (pris en charge : PHP). »

Un fichier dont l'application n'est pas sûre part à destination sans modification. C'est le cas d'un fichier avec la balise courte <? (son sens dépend de la configuration du serveur), avec <?php sans espace derrière, avec une chaîne, un commentaire ou un heredoc non fermé, ainsi que d'un fichier de plus de 32 Mo. Le titre de la fenêtre ajoute alors par ex. « Sans réduction : 1 fichier (raison dans le journal des transferts). », et la raison est inscrite dans le journal des transferts, dans une entrée qui contient le texte not minified.

Attention : Après la réduction, le code PHP tient sur une seule ligne : les numéros de ligne des messages d'erreur et des journaux du serveur ne correspondent donc plus à l'original — dans un fichier qui ne contient que du code, c'est généralement la ligne 1. Pour chercher une erreur sur le serveur, envoyez le fichier sans réduction.

Attention : Les commentaires /** … */ disparaissent aussi. Si le code les lit — par ex. les annotations Doctrine ou l'en-tête du fichier principal d'une extension WordPress —, copiez ces fichiers sans réduction.

FlyingFiles 1.7.4 · Les fonctions ajoutées après la 1.0.0 sont signalées dans le texte.