A simple tool to convert file extension cases between uppercase and lowercase π
This application helps you batch convert file extensions between uppercase and lowercase formats. Built with Rust and Slint UI framework, it provides a clean and intuitive interface for managing file extension cases.
- Batch Processing: Convert multiple files at once
- Recursive Directory Support: Process files in subdirectories
- Drag & Drop Interface: Simply drag files or folders into the application
- Multilingual Support: Available in English and Chinese
- Cross-Platform: Works on Windows, macOS, and Linux
- Safe Operations: Preview changes before applying them
- Install Rust by following its getting-started guide.
Once this is done, you should have the
rustc
compiler and thecargo
build system installed in yourPATH
.
Clone the repository and navigate to the project directory:
git clone https://github.com/cworld1/ext-case-converter.git
cd ext-case-converter
Build and run the application:
# Build the project
cargo build
# Run the application
cargo run
For development with hot reload and better debugging experience:
cargo run --features dev
Build the application for production:
# Release build
cargo build --release
# The executable will be available at:
# target/release/slint-rust-template.exe (Windows)
# target/release/slint-rust-template (Unix)
We recommend using an IDE for development, along with LSP-based IDE integration for .slint
files. You can also load this project directly in Visual Studio Code and install the Slint extension.
- Backend: Rust
- UI Framework: Slint
- File Handling:
walkdir
for recursive directory traversal - File Dialogs:
rfd
for native file selection dialogs - Configuration: TOML-based configuration system
- Internationalization: Built-in gettext support
βββ src/
β βββ main.rs # Application entry point
β βββ config.rs # Configuration management
β βββ file_handler.rs # File processing logic
β βββ ui_handlers.rs # UI event handlers
βββ ui/
β βββ main.slint # Main UI components
β βββ app-window.slint # Application window
β βββ settings.slint # Settings dialog
β βββ about.slint # About dialog
βββ lang/ # Translation files
β βββ zh_CN/ # Chinese translations
β βββ en_US/ # English translations
βββ target/ # Build artifacts
To spend more time coding and less time fiddling with whitespace, this project uses code conventions and styles to encourage consistency. Code with a consistent style is easier (and less error-prone!) to review, maintain, and understand.
- Follow Rust standard formatting with
cargo fmt
- Run
cargo clippy
to catch common mistakes - Ensure all tests pass with
cargo test
- Update translations when adding new UI text
This project is licensed under the GPL-3 License.