Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/belanasaikiran/file-system-management
A group project at UCONN::CSE 5304
https://github.com/belanasaikiran/file-system-management
filesys imgui operating-systems os
Last synced: about 1 month ago
JSON representation
A group project at UCONN::CSE 5304
- Host: GitHub
- URL: https://github.com/belanasaikiran/file-system-management
- Owner: belanasaikiran
- Created: 2024-11-10T05:04:46.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-19T04:22:50.000Z (about 2 months ago)
- Last Synced: 2024-11-19T05:26:10.469Z (about 2 months ago)
- Topics: filesys, imgui, operating-systems, os
- Language: C++
- Homepage:
- Size: 1.08 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# File-System-Management
This project implements a file system GUI using Dear ImGui, a graphical interface library. It enables users to perform file system operations including file and directory management, disk usage monitoring, and file modification.
Implemented in C++ with OpenGL for rendering
> OS-GroupProject
### Implemented Functions
| **Operation** | **Function** |
|---------------------------|-----------------------------------------------------------------------------|
| Create Directory | `create_directory(dirName)` |
| Delete Directory | `delete_directory(dirName)` |
| Create File | `create_file(fileName)` |
| Delete File | `delete_file(fileName)` |
| Write to File | `write_to_file(fileName, fileContent.c_str())` |
| Read File | `read_file(fileName)` |
| Get File Info | `get_file_info(filePath)` |
| List Directory Contents | `list_directory_contents(filePath)` |
| Rename File/Directory | `rename_file_or_directory(oldName, newName)` |
| Move File/Directory | `move_file_or_directory(moveCopySource, moveCopyDestination)` |
| Copy File | `copy_file(moveCopySource, moveCopyDestination)` |
| Change File Permissions | `change_permissions(fileName, parsedPermissions)` |
| Get Disk Usage | `get_disk_usage(".")` |### Steps to Build and Run the program.
0. Install the necessary libraries
```bash
sudo apt update
sudo apt install gcc pkg-config g++ build-essential libglfw3-dev libgl1-mesa-dev libx11-dev libxrandr-dev libxi-dev libxxf86vm-dev libxcursor-dev cmake1. Firstly, clone the ImGUI git repository into this project directory. We use the docking branch since it provides option to resize the windows according to our wish
```bash
git clone --recursive https://github.com/ocornut/imgui -b docking
```
> NOTE: the `imgui` folder should be at ROOT i.e., one dir behind AllinOne or file_system_gui folder.2. go to `file_system_gui` directory, and run the make command.
```bash
cd file_system_gui
make
```> NOTE: Make sure, the make file IMGUI directory is pointed to the directory you cloned in step 1
3. Run the GUI interface:
```bash
./file_Sys_gui
```### Diretory Structure for this project:
```bash
.
├── FileSys_GUI
├── imgui
├── Output_ScreenShots
└── README.md
```### Test Screenshots:
![image 1](./images/final_UI.png)
![image 2](./images/final_exec.png)