Skip to content

Hopelezz/FindProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Find File

A simple file finder app. Built with Powershell.

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Features
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgments

About The Project

This is a simple Folder Finder app. There are two scripts provided both built-in Powershell.

  • FindProject.ps1 is a command line editor
  • FindProjectGui.ps1 is a Graphical User Interface.

image

(back to top)

Built With

(back to top)

Getting Started

To run the scripts you will need to follow the instructions below.

Installation

  1. Clone the repo:
    git clone https://github.com/Hopelezz/FindProject.git
  2. Inside the FindProject folder Right-click on the FindProject.ps1 file and select Run with Powershell.

Setup

  1. Create a Shortcut to the FindProject.ps1 file.
  2. Right-click on the shortcut and select Properties.
  3. In the Shortcut tab, in the Target field, add the following at the beginning of the path: Powershell. This will prompt Powershell to run the script.

Additionally, you may have to set the execution policy based on your systems administrator settings. Contact your system administrator for more information.

More information on execution policies can be found here.

(back to top)

Features

  • Create a function that will search for a file in a given directory and 1 subdirectory.
  • Create a Graphical User Interface (GUI) for the function.
    • Input field for the file name.
    • Search Button to run the function.
    • ListBox to display the results.

Improvements:

  • Pressing Enter in the input field should run the function.
  • Double-clicking on a result should open the file.
  • Add Clear button to clear the input field.
  • Add Warning if the input is empty or under 3 characters.
  • Add Warning if the file is not found.
  • Add Try/Catch to handle errors.
  • Add ContextMenu to open Path in VS Code
  • Add Keybind Ctrl + Enter to search C:\ drive.
  • Refactor Code to simplify and remove unused code.
  • Add Properties menu to ContextMenu to open folder Properties.
    • This is rather complicated since (Start-Process -FilePath Explorer.exe "/select, $FolderPath") doesn't work, but it will Open To Folder and select it.
    • Tree.txt is created from function FindTree{} and placed at $dirPath. The idea is to reduce the search impact on servers to once a day for the first user to search.

C# APP

  • Create a base WPF Winform version.
  • User Feedback: Provide more feedback to the user during the search process. For example, can show a loading spinner while the search is in progress or disable the search button during the search to prevent multiple simultaneous searches.
  • Asynchronous Search: Due to potentially long wait times for large directory structures, could perform the search operation asynchronously to keep UI responsive. Can use an async-await pattern for this. [Note: this has personally improved the search delay significantly over the Powershell version for large folder structures]
  • Enhanced UI: Can improve the UI by adding features like:
    • Sort functions
    • Displaying folder details (Maybe add tooltips that access metadata?)
  • Setting Menu to enable features
    • Add customizable Default Path
    • Add customizable Ctrl + Enter Path
    • Add search criteria, such as searching by file type, file size, creation/modification date, etc. (Not sure if I want to do this)
    • Add a dedicated path within the folder that opens. For example, if all folders have the same folder architecture could set an additional dedicated path like [path] + [results] +\\Design\\Controls
    • Localization: to support different regions. Could use AI or translation software [Note: Not a lot to convert if any]
    • Configurability: Instead of hardcoding the minimum length requirement for the search term (3). This allows users or administrators to adjust the behavior of the application according to their preferences.

See the open issues for a full list of proposed features (and known issues).

(back to top)

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". Don't forget to give the project a star! Thanks again!

  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)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

(back to top)

Acknowledgments

(back to top)

About

A search app using a powershell script with a GUI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published