Skip to content

johneliades/file_explorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

436 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Explorer

A modern, dark-themed file explorer built with JavaFX. It features a tree-based folder navigation panel, a tile/grid view for folder contents, breadcrumb path navigation, recursive search, disk usage indicators, and thumbnail previews for images and videos.

Java JavaFX Maven

Features

  • Tree Navigation — Expandable folder tree with lazy-loading of subdirectories
  • Tile/Grid View — Responsive tile layout that adjusts to window size
  • Breadcrumb Bar — Click any segment to navigate directly; click to edit the full path
  • Back/Forward Navigation — Mouse side buttons, Alt+Left/Right, or toolbar buttons
  • Recursive Search — Type in the search bar to find files/folders recursively
  • Image Thumbnails — Asynchronous loading with caching for JPG, PNG, GIF, BMP, WebP, HEIC, AVIF, TIFF
  • Video Thumbnails — First-frame extraction via FFmpeg (MP4, MKV, AVI, MOV, etc.)
  • Disk Usage Bars — Progress bars showing free/total space on each drive
  • Dark Theme — Aqua accent colors on a dark background

Requirements

  • Java 21 or later (OpenJDK or Oracle JDK)
  • Maven 3.9+ (or use the included Maven Wrapper)

Building & Running

# Clone the repository
git clone https://github.com/johneliades/file_explorer.git
cd file_explorer

# Compile
./mvnw compile        # Linux/macOS
mvnw.cmd compile      # Windows

# Run
./mvnw javafx:run     # Linux/macOS
mvnw.cmd javafx:run   # Windows

Project Structure

src/main/java/com/johneliades/fileexplorer/
├── FileExplorer.java          # Application entry point & main window layout
├── config/
│   └── UIConfig.java          # Centralized color & size constants
├── ui/
│   ├── FilePanel.java         # Individual file/folder tile widget
│   ├── FileTree.java          # Left-side tree view with lazy loading
│   ├── FolderViewManager.java # Right-side grid/tile view & search
│   ├── NavigationController.java # Back/forward history & coordination
│   └── TopNavigation.java     # Toolbar: breadcrumbs, path field, search
└── utils/
    ├── FileUtils.java         # File extension, size formatting, hashing
    └── ImageUtils.java        # Icon selection, thumbnail loading, FFmpeg

Key Dependencies

Library Purpose
JavaFX 17 UI framework
JavaCV / FFmpeg Video thumbnail extraction
TwelveMonkeys ImageIO WebP, HEIC, TIFF image support

Controls

Action Shortcut
Navigate back Alt + Left / Mouse Back
Navigate forward Alt + Right / Mouse Forward
Open folder Double-click tile / Single-click tree
Open file Double-click tile
Edit path Click breadcrumb bar
Search current folder Type in search field
Clear search Escape
Context menu (file) Right-click a tile → Open, Cut, Copy, Rename, Delete, Properties
Context menu (background) Right-click empty area → Paste, New Folder, Refresh, Properties

License

This project is open source. See the repository for license details.

About

A simple file explorer written in java using Swing and DefaultMutableTreeNode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors