This is a powerful and user-friendly file transfer application built with Python and tkinter. It allows for seamless transfer of files and folders between computers on the same network.
- Intuitive GUI: A clean and modern user interface with separate tabs for sending, receiving, monitoring, and settings.
- Auto Discovery: Automatically discovers other users on the network running the application.
- Multi-File & Folder Transfer: Send multiple files or entire folders in a single batch.
- Real-time Monitoring: Track active transfers with progress bars, speed indicators, and estimated time of arrival (ETA).
- Transfer History: Keep a log of all your past transfers for easy reference.
- Customizable Settings: Configure your display name, default save locations, and network parameters.
- Cross-Platform: Built with standard Python libraries, making it compatible with Windows, macOS, and Linux.
- Multi-threaded: Handles multiple transfers simultaneously without freezing the UI.
| Send Tab | Receive Tab |
|---|---|
![]() |
![]() |
| Monitor Tab | History Tab |
|---|---|
![]() |
![]() |
| Settings Tab |
|---|
![]() |
- Python 3.6 or higher
- No external libraries are needed for the basic functionality.
-
Clone the repository:
git clone https://github.com/whoisjayd/file-transfer.git cd file-transfer -
Run the application:
python app.py
- Navigate to the Send Files tab.
- The application will automatically scan for available receivers. You can also manually enter an IP address.
- Click Add Files or Add Folder to select what you want to send.
- Select a receiver from the list or enter the IP manually.
- Click Send Files.
- Go to the Receive Files tab.
- Set your display name and the directory where you want to save incoming files.
- Click Start Receiving. The application will now listen for incoming connections.
- You will be prompted to accept or decline incoming transfers unless you have enabled auto-accept in the settings.
- The Monitor tab shows all active transfers, their progress, speed, and ETA.
- The History tab provides a log of all completed or failed transfers.
The project is organized into a modular structure:
app.py: The main application entry point.ui/: Contains theUIManagerresponsible for all GUI components.network/: Includes theTransferManagerwhich handles all networking logic.utils/: A collection of helper modules for file management, settings, and other utilities.assets/: Contains images and other resources for the application.
This project is licensed under the MIT License - see the LICENSE file for details.




