• EN
  • FR
  • Cinder - File Explorer


    As a video content creator, I’ve been dealing with terabytes of video files for years. Using the Windows file explorer recently have been a very painful experience. Like a lot of users I observed very long loading times even for the simplest taks, and this despite my high speed drives. Searching for files using the file explorer was also nearly useless comparing to software like Everything.

    The Technology Behind Cinder

    Tauri

    I chose Tauri, a toolkit for building lightweight desktop applications using web technologies, as the backbone for Cinder. Tauri appealed to me because it’s secure, uses a minimal amount of system resources, and integrates seamlessly with the underlying operating system. This choice allowed me to leverage my web development skills while ensuring that Cinder remained light and fast.

    Rust

    For the core logic and performance-critical aspects of the app, I utilized Rust. Rust’s emphasis on safety and performance made it an ideal choice. It helped in managing system resources more efficiently and provided the reliability needed for a file management tool, ensuring that operations such as file copying, moving, and deleting were handled swiftly and safely.

    React

    To build a dynamic and responsive user interface, I used React. React’s component-based architecture made it straightforward to implement a modern UI and ensure a smooth user experience. The reusability of components also facilitated a cleaner and more maintainable codebase.

    Cinder Screenshot

    Features

    The current features were implemented:

    • Disk Listing
    • Grid | List layouts
    • File Listing
    • Folder navigation
    • Path navigation
    • Tabs that could be dragged in/out to manage windows
    • Multi-window
    • Error handling

    The fix that changed everything

    It was discovered that the cause for the massive loading issues we had been dealing for the past years was the automatic folder type discovery feature of the Windows Explorer. This feature let Windows analyze a folder to determine the view it should use to display files. For example, if a folder contains images or videos, the view will be set to a grid with thumbnails. This feature runs every single time that you open a folder. If a folder contains a lot of files, or heavy files, Windows will need to check each of them one by one in order to determine the view, while blocking the main thread. Luckily, it is possible for us to disable this feature, using the following registry edit :

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
    "FolderType"="NotSpecified"
    

    Obviously, you will have to manually set the view for each folder that you open, but once you do Windows will remember your setting. This is very ironic since they can do this but not cache the automatic view setting.

    Conclusion

    Building Cinder has been a fulfilling journey. Even though it went down in my priority list after I discovered the File Explorer fix, it was a good experience to see how pretty and performant, webview based apps can be. If I had to work more on this project, I would probably add those features :

    • Support for SMP and SFTP servers
    • File Indexing for instant search results
    • Customizable context menus

    Source

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