Skip to content

Latest commit

 

History

History
236 lines (189 loc) · 10.6 KB

README.md

File metadata and controls

236 lines (189 loc) · 10.6 KB

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Extensio Craft

A Python application for streamlined file extension management.
Explore the docs »

· Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Usage
  3. Contributing
  4. License
  5. Contact

About The Project

ExtensioCraft is a Python-based application designed to facilitate file system operations with an emphasis on managing file extensions. This tool leverages both command-line and graphical user interface elements, making it versatile and user-friendly.
Screenshot

(back to top)

Usage

Use ExtensioCraft to manage file extensions efficiently. You can browse directories, select specific file types, and perform various file operations.

Comboboxes

Folder Combobox:

  • This dropdown menu displays a list of previously browsed directories. Users can select a directory from this list to quickly navigate to it. It's updated every time a new folder is browsed and saved.

Listboxes

Extension Listbox:

  • Shows all file extensions found in the currently selected directory. Each entry in this listbox represents a unique file extension present in the directory. Users can select one or more extensions to perform operations like copying or deleting files with these extensions.

Path Listbox:

  • Displays the paths of the files or directories related to the selected file extensions from the Extension Listbox. It helps users see where files with the selected extensions are located within the chosen directory.

Buttons

Browse Button:

  • Opens a dialog for the user to select a directory. Once a directory is selected, the application scans it for file extensions and updates the Extension Listbox with these extensions.

Refresh Button:

  • Refreshes the application, particularly useful for updating the Extension Listbox if there are changes in the selected directory or if a new directory is selected from the Folder Combobox.

Browse Specific Button:

  • Allows users to enter a specific file extension and filter the Extension Listbox to show only files with that extension.

Delete Selected Extensions Button:

  • Deletes all files in the selected directories (from the Path Listbox) that have extensions selected in the Extension Listbox.
Copy Selected Extensions Button:
  • Copies all files in the selected directories that have the chosen extensions to a specified destination folder. The destination folder is chosen by the user.

Go to Folder Button:

  • Opens the file explorer (Finder on macOS, Explorer on Windows, etc.) and navigates to the selected folder or file location from the Path Listbox.

Checkboxes (Filter Options)

  • Pictures, Videos, Document Files, Compression Files, Software Files, Others Checkboxes: These are filter options. Selecting any of these checkboxes filters the extensions shown in the Extension Listbox based on the category chosen. For example, selecting "Pictures" will filter and display only image file extensions like .jpg, .png, etc.

Additional Functionalities

  • Progress Bar: Indicates the progress of ongoing operations like scanning directories, copying, or deleting files. It provides visual feedback to the user on the task's progress.
  • Saving and Loading Paths: The application saves the paths of browsed directories and loads them when restarted, providing ease of access to frequently used locations.

Screenshots (MacOS)

Screenshot Screenshot

Standalone APP (MacOS)

  1. Install pyintaller
pip install pyinstaller
  1. Generate the standalone app
pyinstaller --windowed --onefile your_script_name.py
  • --windowed or -w flag is used to prevent the Terminal from opening.
  • --onefile creates a single executable file.
  1. After the process completes, find your executable in the dist directory.

4. Create a Folder for Your App: Name it YourAppName.app and ensure it ends with .app. Inside this folder, create a hierarchy like this:
YourAppName.app/
└── Contents/
    ├── MacOS/
    └── Resources/
  1. Move Your Executable: Move the PyInstaller-generated executable into the Contents/MacOS/ directory. Rename it to match your application's name.

6. Create an Info.plist File: In the Contents/ directory, create a file named Info.plist with the following basic structure:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>YourAppName</string>
    <key>CFBundleIconFile</key>
    <string>iconfile</string>
    <key>CFBundleIdentifier</key>
    <string>com.example.yourapp</string>
    <key>CFBundleName</key>
    <string>YourAppName</string>
    <key>CFBundleVersion</key>
    <string>1.0.0</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>NSHighResolutionCapable</key>
    <string>True</string>
</dict>
</plist>

  1. Replace YourAppName and other details with your app's specifics. Add an Icon: Optionally, add your app's icon to the Resources folder and reference it in the Info.plist.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Built With

Icon  

(back to top)

License

Distributed under the GNU GENERAL PUBLIC LICENSE. See LICENSE.txt for more information.

(back to top)

Contact

LinkedIn

(back to top)