Skip to content

kamwoods/splendir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Splendir

GitHub issues Build License: MIT GitHub forks

A High Performance Directory Scanner and Printer

Splendir is a fast cross-platform directory scanner with a GUI interface. Splendir generates tree views of files in a directory, customizable lists of file metadata (including file types, MIME types, and hashes), and reports of directory contents and file type distributions.

Features:

  • Multi-threaded processing for high speed scans and hash calculations
  • Autodetects filesystem on which directory is being scanned
  • Virtual scrolling in tree and file list modes for live views of millions of files
  • Multiple scan presets
  • Live sorting of output in file list view
  • File format identification
  • Directory listings exported as UTF-8 encoded CSV files, tree structures as UTF-8 encoded text files

Splendir is built in Rust and implements a GUI in iced. Multi-threading for hash calculations is implemented using rayon. Splendir is currently in alpha, but releases can be consider "feature complete" for the publicly documented features. The main branch of this repo may include development code that leads the current release.

Install

Releases include a Ubuntu/Debian package and standalone executables for Linux (x64), Windows 11 (x64) and macOS (Apple M-series silicon). Follow the instructions in one of the sections below.

Ubuntu/Debian

Download splendir-x64.deb from the latest release in Releases and in a terminal run:

cd /your/download/directory
sudo dpkg -i splendir-x64.deb

Any Linux

Download splendir-linux-x64.tar.gz from the latest release in Releases and extract the .tar.gz file. Then copy the executables to /usr/local/bin:

cd /your/download/directory
tar zxvf splendir-linux-x64.tar.gz
sudo cp splendir /usr/local/bin

Run the GUI by typing splendir in the terminal and hitting enter.

Windows 11

Download splendir-windows-x64.tar.gz from the latest release in Releases and extract the files. Double-click on splendir.exe to run the GUI. A warning may appear that the Visual Studio C++ Redistributable package needs to be installed first (this can be downloaded from Microsoft). A warning dialog about an unknown developer may appear when running the GUI. Click More info and select Run Anyway.

macOS

Download splendir-macos-tar.gz from the latest release in Releases and extract the files. Double-clicking on splendir will generate an untrusted application warning. Navigate to Apple Menu > System Settings and then select Privacy & Security in the sidebar. In Security, click Open and Open Anyway. You will be asked for a login password to confirm.

Using Splendir

Click the Browse... button to select a local directory, then click the Start Scan button. The Mode: dropdown can be set to:

  • Detailed File List (outputs a file list with metadata)
  • Tree View (outputs a graphical tree view similar to the command-line tool "tree")
  • Directory Analysis (a high-level overview of the directory contents).

All three views are generated when Start Scan is clicked. When a scan is complete, an Export button will appear to allow export of the content. If Detailed File List is currently selected, clicking Export will generate a CSV file. If Tree View is selected, it will generate a UTF-8 text representation of the tree. If Directory Analysis is selected, it will generate a text file containing that overview.

The Traversal Options control which types of files should be included in the scan, and (optionally) a maximum directory depth for the scan.

  • Include dotfiles includes directories and files beginning with a ".", typically signifying a system or configuration file on Linux and macOS.
  • Follow symlinks follows symbolic links to access a target file or directory
  • Skip virtual filesystems is checked by default, and skips specific locations including /proc, /run, /sys, and /tmp on Linux if you happen to be scanning a live file system from the / root directory, or devfs and autofs mounts on macOS.
  • Stay on same filesystem is unchecked by default, but can be checked to restrict the scan from switching filesystems (for example, in Linux if a directory contains multiple mount locations for different filesystems).

Splendir will distribute work among all available CPU cores to provide maximum performance when running long scans (for example, computing MD5 or SHA hashes for many files). Terminate a long-running scan by clicking Cancel at any time. Clicking Exit during a scan will also trigger a cancellation.

Splendir Directory Listing View

Both the Directory Listing view and Tree View are implemented with a virtual scrolling feature to provide live views of directories of any size. When scanning large directories, you will see a progress report as the tool builds this data structure. Once the directory has been scanned, you can scroll to any point in the output to inspect and review before exporting. The Directory Listing view collapses all selected columns into the viewable area by default. To see the full output in each column, click Expand Columns. The vertical scroll position is maintained when expanding or collapsing columns.

Adjust the Sort Options to instantly view and export sorted results without having to rescan. The Default sort option is an alphabetized directory walk (all subdirectory entries grouped together at each level).

Check or uncheck the basic metadata (File Name, Path, Path + Name, Size, Created, Modified, Accessed) in File Options to add or remove these columns without having to rescan. Checking Format, Media Type, MD5, SHA256, or SHA512 will display the column but the results will not be populated unless these were checked at the time of the scan.

Splendir Tree Listing View

Hovering over an individual line in the output will highlight that line. Right-clicking on the line will bring up a context dialog providing the option to Show File In Folder, or Close and return to the output listing.

Splendir Tree Listing View

The Tree View displays a simple graphical tree view along with a count of the total number of nodes (directories and files) in the tree. Currently, the tree view does not display any file or directory metadata.

Splendir Directory Analysis View

The Directory Analysis view provides some basic information about the total size of the directory scanned and the types and counts of files encountered. This view also indicates the filesystem type for the base directory associated with the scan, and provides a simple distribution of the file sizes encountered. In certain scan scenarios involving live file systems, directories containing virtual ("special") files related to system operations may be skipped. In cases where the Splendir application does not have the requisite permissions to process a particular file or directory, those cases will be logged and noted in the Directory Analysis results view. These situations are described in further detail below.

Splendir Directory Analysis Warnings

Splendir makes an effort not to elide or obfuscate information about which files and directory entries on a filesystem have been skipped, whether those entries are likely irrelevant to a preservation process (virtual files on a live filesystem) or potentially more important (failed to process because the current user running the Splendir application does not have permissions to access them). The above screenshot shows Splendir recording both of these cases - virtual filesystems and special files areas skipped, and regular files not processed due to permissions issues - in the Directory Analysis output.

Splendir Log Access

Splendir maintains a daily log in the .splendir directory of the user's home directory, the content of which is maintained for 30 days (or until the next time the Splendir application is launched after 30 days from the creation of that log file). These logs include more detailed infomation about the operation of the Splendir tool in addition to directory skip notifications and permissions errors that are reported in the Directory Analysis output. Clicking the Show Logs button in the bottom right of the interface will bring up a file manager window providing direct access to these daily logs.

Build (Developers and Contributors)

To build, ensure you are using Rust 1.91.0 or newer.

Clone this repo with the command:

git clone https://github.com/kamwoods/splendir

Navigate to the root of your cloned directory, and build the Splendir binary with:

cargo build --release

Contributing

Open an issue in this repository to report bugs or request features, or open a PR to submit updates.

License

Distributed under the terms of the MIT License. See the LICENSE file for additional details.

Sponsor this project

 

Packages

No packages published

Languages