This Repository contains the Terminal Based File Explorer built as part of Advanced Operating Systems Coursework.
This Repository is the implementation of File-Explorer in Terminal as part of Advanced Operating Systems Coursework using the proper invocations of various system call and not relying on ncurses for GUI.
As per the ASSIGNMENT PDF:
- The root of your application should be the directory where the application was started.
- Home - h key should take the user to the home folder (the folder where the application was started).
Binaries are present in /bin
make
: Builds the binariesmake clean
: Remove the object filesmake run
: Build and run the application
Makefile
is already configured to use debugging just use the attached .vscode
configuration.
- termios.h
- sys/ioctl.h
- sys/stat.h
- dirent.h
- grp.h
- pwd.h
- fcntl.h
- bits/stdc++.h
Navigation Keys:
↑
: Moves the cursor arrow upwards.↓
: Moves the cursor arrow downwards.←
: Goes back to previously visited directory.→
: Goes to next directory.h
: Goes toHome
which is currently set.(where application starts from)Backspace
: Goes to parent directory.k
: Scroll Window Upl
: Scroll Window downq
: Quit the Explorer
.
: current directory~
: home directory
All the paths will be in reference to one of theses two.
copy <source_file(s)/folder(s)> <destination_directory>
copy <source_file(s)/folder(s)> <destination_directory>
rename <old_filename> <new_filename>
create_file <file_name(s)> <destination_path>
create_file <directory_name(s)> <destination_path>
delete_file <file_path>
delete_dir <dir_path>
goto <directory_path>
search <filename/foldername>
- The cursor is hidden in normal mode and an arrow is printed to point the directory entry.
- Auto resize: Window resize automatically resizes everything in the explorer as well as maintains the command buffer in command mode.
- It has alternate linux mode configuration that can be switched on that changes the paths to use normal linux paths. Just change the boolean flag to true.