FileSorterX is an automatic file sorting application that sorts your files into folders based on their file extension

Overview



➑️ Discord | Documentation ⬅️

Welcome to FileSorterX

Sort files in a flash with lightning-fast automation.

Logo

πŸ“¦ Installation Guide

πŸ“¦ Cargo πŸ’Ύ Binary
Cargo
cargo install FileSorterX Release page

πŸ€” What's FileSorterX

FileSorterX-demo-gif

FileSorterX is a small command line application that automatically sorts files based on their file extension and places them into the appropriate folder. The application is written in Rust, which makes it very very fast. Only taking up to a second to sort over 10,000 files!. As well as being very reliable and efficient.

πŸŽ‰ Features

  • Sorts thousands of files within a second? βœ”
  • Provides one of the best libs for file sorting? βœ”
  • Has A modern, easy and comfy cli interface? βœ”
  • Allows cli users to customize sorting locations? βœ”
  • Has a self updating feature; so you never have to worry about being out of date? βœ”
  • Provides a benchmarking tool so you can see how it performs for yourself? βœ”
  • Allows for logging and verbosity? βœ”
  • Saves you hours of time from sorting manually or programming one yourself? βœ”
  • Bakes you a cake? ❌

πŸ’» Cli First

FileSorterX is a powerful command-line interface (CLI) tool designed to help users automatically organize and sort their files. What sets FileSorterX apart from other similar tools is the separation between its library and the CLI tool. The library provides all of the core functionality like the creation and sorting of files. While the CLI tool serves as a convenient interface for users to interact with the library think of it as a cli wrapper. Although the primary focus is on the CLI application, the separation of the library and the tool ensures that users have the flexibility to integrate the sorting and organization functionality into their own projects or applications. With FileSorterX, users can easily manage and organize their files without having to spend hours doing it manually.

Contributors

Xanthus
Xanthus

πŸ€” πŸ’» 🎨 🚧
FlameOrchid
FlameOrchid

πŸ’» πŸ›
Wolfen
Wolfen

⚠️
okalm
okalm

πŸ›

This project follows the all-contributors specification. Contributions of any kind welcome!

Comments
  • Telemetry is Opt-out

    Telemetry is Opt-out

    1. Telemetry is enabled by default, which will not be met well in the Linux community.
    2. Telemetry collects data that can identify user (e.g. input_dir = "/exl_arch/β€”3β€”PROJβ€”3β€”/eurystheus/src/" or input_dir = /home/exl/β€”2β€”POLYβ€”2β€”/music/).

    Solution: Make telemetry Opt-in, so when user encounters error they can enable this feature once and submit useful data that way. Also this will not create ton of useless data.

    enhancement 
    opened by FlameOrchid 2
  • Wrong syntax in the README

    Wrong syntax in the README

    Hello,

    While trying out your software I just followed the example given in the README and it seems the syntax isn't correct.

    /tmp/00 % ~/bin/FileSorterX_v1.2.0_x86_64-unknown-freebsd customsort --input /tmp/00 --output /tmp/00/textfolder --extension txt --verbose 
    error: unexpected argument '--input' found
    
      tip: a similar argument exists: '--inputdir'
    
    Usage: FileSorterX_v1.2.0_x86_64-unknown-freebsd customsort <--inputdir <INPUTDIR>|--outputdir <OUTPUTDIR>|--extension <EXTENSION>|--verbose|--log>
    
    For more information, try '--help'.
    

    Then I just used the syntax given by the tip and usage and it worked.

    /tmp/00 % ~/bin/FileSorterX_v1.2.0_x86_64-unknown-freebsd customsort --inputdir /tmp/00 --outputdir /tmp/00/textfolder --extension txt --verbose                                     % 16:05:02
    Moved file: "/tmp/00/file_3.txt" to "/tmp/00/textfolder"
    Moved file: "/tmp/00/file_4.txt" to "/tmp/00/textfolder"
    Moved file: "/tmp/00/file_5.txt" to "/tmp/00/textfolder"
    Moved file: "/tmp/00/file_2.txt" to "/tmp/00/textfolder"
    Moved file: "/tmp/00/file_1.txt" to "/tmp/00/textfolder"
    Moved file: "/tmp/00/file_6.txt" to "/tmp/00/textfolder"
    

    So --inputdir --outputdir are correct but not --input and --output .

    OS: FreeBSD 13.1-RELEASE Package version: FileSorterX_v1.2.0_x86_64-unknown-freebsd

    bug documentation 
    opened by okalm 2
  • FreeBSD Missing Dependency

    FreeBSD Missing Dependency

    Hi there,

    FileSorterX complains about a missing dependency libssl.so.11 which is installed by the package openssl, it's not installed by default at least in my case. Once openssl is installed FileSortedX doesn't give any warning and works.

    OS: FreeBSD 13.1-RELEASE Package version: FileSorterX_v1.2.0_x86_64-unknown-freebsd

    bug 
    opened by okalm 2
  • Remove the self update feature from the Linux version

    Remove the self update feature from the Linux version

    Due to the self updater fetching the update from GitHub; it requires open ssl. Which I cant seem to get to compile on Linux; meaning that to have a Linux version available the self updating feature will have to be removed.

    (Only for the Linux platform, windows will still have the self update feature)

    bug 
    opened by Xanthus58 2
  • Add Basic telemetry

    Add Basic telemetry

    Add some basic optional telemetry that will collect things like The command used; Operating system; Time taken and more info; then use that to generate a unique id to be used in bug reports.

    Mostly a small QOL epically for the development of the project so people can send their issue; anything they think is important. And the UUID of the command ran; then we can use all that information to figure out exactly what went wrong and why.

    I know some users aren't a fan of telemetry so the feature can be disabled entirely with a flag (-d / --disable-telemetry).

    enhancement 
    opened by Xanthus58 1
  • Contributors

    Contributors

    Here is where we ask @all-contributors to add people. Please follow this template

    https://allcontributors.org/docs/en/emoji-key @all-contributors please add @<username> for <contributions>

    documentation 
    opened by Xanthus58 15
  • Add macOS support

    Add macOS support

    I would love to open this application to be macOS compatible; but sadly I cant seem to find a reliable way to cross-compile from windows to macOS. As I don't have a mac device to compile it natively on. This will have to go in the backburner until I can either find a reliable way to cross compile; or a contributor wishes to port the application

    enhancement help wanted 
    opened by Xanthus58 0
Releases(v1.2.1)
Owner
Xanthus
Greetings and salutations. I'm a novice developer just fiddling about and experimenting with various different things.
Xanthus
This library contains collection of all sorts of useful information for every country.

Keshvar This library contains collection of all sorts of useful information for every country. Package | Documentation | Repository Demo use keshvar::

Pouriya 11 Apr 2, 2023
A cross-platform file sorting program

Cabinet Cross-platform file sorting system that sorts files based on their attributes, such as file type, file name and date modified. Disclaimer: Not

Ray 2 Jul 12, 2022
An ultra-fast CLI app that fixes JSON files in large codebase or folders

minosse An ultra fast CLI app that fixes json files in large codebase or folders USAGE: minosse [OPTIONS] <input-dir> FLAGS: -h, --help Prints

Antonino Bertulla 5 Oct 17, 2022
πŸͺ‚ SkyFolder shares your folders on the network!

Skyfolder Easily share your files & folders on the network. Security, Simplicity, Style all built in. It's like your own personal Google Drive! Skyfol

null 20 May 29, 2023
CLI tool to find duplicate files based on their hashes.

Dupper Dupper is a CLI tool that helps you identify duplicate files based on their hashes (using the Seahash hashing algorithm). Installation You can

RubΓ©n J.R. 4 Dec 27, 2022
Automatic application-aware keyboard layer switching for Windows

komokana Automatic application-aware keyboard layer switching for Windows About komokana is a daemon that listens to events emitted by komorebi and co

Ψ¬Ψ§Ψ― 57 Jun 11, 2023
Learning rust by coding different sorting algorithms in it

Sorting in Rust Sorting a 32 bit unsigned integer vector by using: Radix Sort Quick Sort Merge Sort Bubble Sort Inbuilt Sort (Probably Tim Sort) This

Pulak Malhotra 1 Nov 28, 2021
Human numeric sorting program β€” does what `sort -h` is supposed to do!

hns β€” Human Numeric Sort v0.1.0 (⏫︎2022-09-20) Β© 2022 Fredrick R. Brennan and hns Authors Apache 2.0 licensed, see LICENSE. man page Packages hns_0.1.

Fredrick Brennan 7 Sep 25, 2022
A Rust implementation of Glidesort, my stable adaptive quicksort/mergesort hybrid sorting algorithm.

Glidesort Glidesort is a novel stable sorting algorithm that combines the best-case behavior of Timsort-style merge sorts for pre-sorted data with the

Orson Peters 1.4k Apr 22, 2023
A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

Robiot 2 Dec 25, 2021
A commmand line tool for uploading homework coded on the dcloud server onto specific google drive course folders.

A commmand line tool for uploading homework coded on the dcloud server onto specific google drive course folders.

Daniel Kogan 2 Sep 8, 2022
Lightweight command line tool to quickly navigate across folders.

slingshot 0.3.0 Slingshot is a lightweight tool to browse files in the terminal. It allows the user to quickly filter through files in any directory,

Caio Ishikawa 40 Sep 17, 2023
Boxxy puts bad Linux applications in a box with only their files.

boxxy is a tool for boxing up misbehaving Linux applications and forcing them to put their files and directories in the right place, without symlinks!

amy null 910 Feb 22, 2023
Extension trait to chunk iterators into const-length arrays.

const-chunks This crate provides an extension trait that lets you chunk iterators into constant-length arrays using const generics. See the docs for m

Louis GariΓ©py 6 Jun 12, 2023
My own image file format created for fun! Install the "hif_opener.exe" to open hif files. clone the repo and compile to make your own hif file

Why am i creating this? I wanted to create my own image format since I was 12 years old using Windows 7, tryna modify GTA San Andreas. That day, when

hiftie 3 Dec 17, 2023
A Rust based simple cli to delete all files included in `.gitignore` file from your repo

clean-local A simple CLI to remove all the files and folders included in the .gitignore file. Written in RUST Supports glob and wildcard paths in .git

Vilva Athiban P B 5 Jul 8, 2023
CLI application to run clang-format on a set of files specified using globs in a JSON configuration file.

run_clang_format CLI application for running clang-format for an existing .clang-format file on a set of files, specified using globs in a .json confi

martin 6 Dec 16, 2022
CLI application to run clang-tidy on a set of files specified using globs in a JSON configuration file.

run-clang-tidy CLI application for running clang-tidy for an existing .clang-tidy file on a set of files, specified using globs in a .json configurati

martin 7 Nov 4, 2022
:large_orange_diamond: Build beautiful terminal tables with automatic content wrapping

Comfy-table Comfy-table tries to provide utility for building beautiful tables, while being easy to use. Features: Dynamic arrangement of content to a

Arne Beer 525 Jan 8, 2023