• FR
  • EN
  • Cinder - Explorateur de fichiers


    En tant que créateur de contenu vidéo, je manipule des téraoctets de fichiers vidéo depuis des années. Utiliser l’explorateur de fichiers Windows récemment a été une expérience très douloureuse. Comme beaucoup d’utilisateurs, j’ai observé des temps de chargement très longs même pour les tâches les plus simples, et ce malgré mes disques à haute vitesse. La recherche de fichiers avec l’explorateur était également presque inutile comparée à des logiciels comme Everything.

    La technologie derrière Cinder

    Tauri

    J’ai choisi Tauri, un kit d’outils pour créer des applications de bureau légères utilisant les technologies web, comme colonne vertébrale pour Cinder. Tauri m’a séduit car il est sécurisé, utilise un minimum de ressources système et s’intègre de manière transparente avec le système d’exploitation sous-jacent. Ce choix m’a permis de tirer parti de mes compétences en développement web tout en garantissant que Cinder reste léger et rapide.

    Rust

    Pour la logique centrale et les aspects critiques en termes de performances de l’application, j’ai utilisé Rust. L’accent mis par Rust sur la sécurité et la performance en a fait un choix idéal. Il a aidé à gérer les ressources système plus efficacement et a fourni la fiabilité nécessaire pour un outil de gestion de fichiers, garantissant que des opérations telles que la copie, le déplacement et la suppression de fichiers soient traitées rapidement et en toute sécurité.

    React

    Pour construire une interface utilisateur dynamique et réactive, j’ai utilisé React. L’architecture basée sur les composants de React a rendu simple la mise en œuvre d’une interface utilisateur moderne et a assuré une expérience utilisateur fluide. La réutilisabilité des composants a également facilité un code plus propre et plus maintenable.

    Capture d'écran de Cinder

    Fonctionnalités

    Les fonctionnalités actuelles ont été implémentées :

    • Liste des disques
    • Mises en page Grille | Liste
    • Liste de fichiers
    • Navigation dans les dossiers
    • Navigation par chemin
    • Onglets pouvant être glissés à l’extérieur/à l’intérieur pour gérer les fenêtres
    • Multi-fenêtres
    • Gestion des erreurs

    Le correctif qui a tout changé

    Il a été découvert que la cause des problèmes massifs de chargement auxquels nous avons été confrontés ces dernières années était la fonctionnalité de découverte automatique du type de dossier de l’Explorateur Windows. Cette fonctionnalité permet à Windows d’analyser un dossier pour déterminer la vue à utiliser pour afficher les fichiers. Par exemple, si un dossier contient des images ou des vidéos, la vue sera définie sur une grille avec des vignettes. Cette fonctionnalité s’exécute chaque fois que vous ouvrez un dossier. Si un dossier contient beaucoup de fichiers, ou des fichiers lourds, Windows devra les vérifier un par un pour déterminer la vue, tout en bloquant le thread principal. Heureusement, il est possible pour nous de désactiver cette fonctionnalité, en utilisant l’édition de registre suivante :

    Éditeur du Registre Windows Version 5.00
    
    [HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
    "FolderType"="NotSpecified"
    

    Évidemment, vous devrez manuellement définir la vue pour chaque dossier que vous ouvrez, mais une fois que vous le faites, Windows se souviendra de votre réglage. C’est très ironique puisqu’ils peuvent faire cela mais ne pas mettre en cache le réglage de vue automatique.

    Conclusion

    Construire Cinder a été un parcours enrichissant. Même si cela est descendu dans ma liste de priorités après avoir découvert le correctif de l’Explorateur de fichiers, cela a été une bonne expérience de voir à quel point les applications

    basées sur WebView peuvent être jolies et performantes. Si je devais travailler davantage sur ce projet, j’ajouterais probablement ces fonctionnalités :

    • Support pour les serveurs SMP et SFTP
    • Indexation de fichiers pour des résultats de recherche instantanés
    • Menus contextuels personnalisables

    Source

    https://www.github.com/oery/cinder