I tried making a terminal based file exploration package
Tags: cpp, cli, linux, development
Published: 2023-07-08 12:46:48

# Introduction : Dree

Navigating through files and folders in the terminal can be a daunting task, especially when working on complex framework projects like Node.js or React or django. To overcome this challenge, I developed a terminal-based file explorer called Dree. Dree provides a visually appealing representation of the directory structure, allowing users to effortlessly browse and search for files and directories. In this article, I will discuss the features and functionality of Dree, showcasing how it can simplify your file and folder exploration experience.

# Getting started

Say goodbye to bulky file managers and embrace Dree, a powerful package that combines visualization, debugging, and exploration of folder hierarchies in one single tool. With Dree, you can effortlessly understand the structure of your directories, making it a valuable asset for developers and system administrators.

You can setup dree in your Linux or MacOs following the Dree [ReadMe.md](https://github.com/ujjwall-R/Dree)
 
# Usage

Dree presents the folders in a tree-like format, with the main folder at the top and its subfolders branching out below it. This makes it easier for you to see how the folders are organized and navigate through them.

One cool thing about Dree is that you can decide how many levels of folders you want to see at a time. For example, if you only want to see the main folder and its immediate subfolders, you can set the depth to 1. If you want to see more levels of folders, you can increase the depth accordingly. This allows you to focus on the specific parts of the folder structure that are most relevant to you.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ja1brfq5p96adkz2lkos.png)

In addition to displaying the directory structure, Dree offers a powerful search feature within the directory tree. Users can search for specific files or folders within the entire directory structure. Furthermore, Dree allows users to manually adjust their search space by setting the depth level.

This means that users can specify how deep they want to search within the directory tree. By adjusting the depth, users can narrow down their search scope to focus on specific levels of the hierarchy. This flexibility enables users to refine their searches and locate files or folders more efficiently.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25ddgllnavwksss071yr.png)


Dree's search functionality is robust and goes beyond simple keyword matching. It incorporates intelligent features, such as providing recommendations in case of misspellings. When users perform a search query, Dree analyzes the input and offers suggestions for potential correct spellings or alternative search terms.

This recommendation feature proves to be particularly helpful when users are unsure about the exact spelling or naming of a file or folder. It saves time and effort by assisting users in finding the desired files or folders, even when there are minor spelling errors or variations in the search query.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e2y130l2r6ggf5sknxo5.png)

# Conclusion

All the features implemented in Dree have been developed entirely by me from scratch. I have written algorithms, incorporating advanced techniques like bitmasking and dynamic programming (dp) to optimize the performance and functionality of the project.

In a separate upcoming article, I will delve into the technical details of how I planned and coded the project. This article will offer a deeper understanding of the project's development process and shed light on the underlying technical aspects.

In future releases, the plan is to enhance Dree with even more robust features, moving it closer to a comprehensive file management tool. The focus will be on expanding its capabilities beyond directory exploration, towards incorporating advanced file management functionalities.

In addition to the exciting future features planned for Dree's evolution, it's worth mentioning that each release will be named after beloved Pokémon characters. This creative naming convention adds an element of fun and nostalgia to the project, allowing users to embark on their file management journeys with a touch of Pokémon-inspired adventure. Get ready to explore the world of file management as Dree continues to evolve, just like the Pokémon it draws inspiration from.

Here are the last two releases:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wawgqz4nz95pgj3p6hfb.png)
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hi62jau6fffd7j13crry.png)
I encourage you to visit [github repository](https://github.com/ujjwall-R/Dree) to explore the project, provide feedback, and show support. Your engagement and support will be greatly appreciated as I continue to improve and refine Dree.

Stay tuned for the upcoming article where I will share in-depth insights into the development process and technical details of Dree.