-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFilesystem.h
106 lines (101 loc) · 3.11 KB
/
Filesystem.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#ifndef FILESYSTEM_H
#define FILESYSTEM_H
#include "Directory.h"
#include <list>
#include <vector>
using namespace std;
class FileSystem
{
private:
list <Directory*> listOfFolders;
Directory* root;
public:
/**
* @brief Beállítja a gyökért és a jelengi mappát
*/
FileSystem();
/**
* @brief Felszabadítja a létrehozott mappák listáját és a gyökért
*/
~FileSystem();
/**
* @brief Betölti egy fájl tartalmát, ha nem létezik létre hoz egyet
* @param string Egy létező/nem létező fájl
*/
bool loadFile(string);
/**
* @brief Segítségével a tudunk végig menni a mappákon a cd fgv segítségével
* @param string Az útvonal amin végigszeretnénk haladni absolute/relative path is lehet
* @param bool Eldönti, hogy levágjuk utolsó string a vectorból
* @param bool Eldönti, hogy visszalépjünk-e ahonnan kezdtük a lépkedést
*/
string followPath(string, bool, bool);
/**
* @brief Létező fájlokat/mappákat tudunk mozgatni
* @param string A path a file/mappához amit mozgatni szeretnénk
* @param string A cél mappához vezető útvonal
*/
void mv(string ,string);
/**
* @brief Egy létező/nem létező fájlnak tudunk tartalmat adni
* @param string Megadjuk a fájl tartalmát
* @param string Megadjuk a fájl nevét
*/
void echo(string, string);
/**
* @brief Mappa törlés
* @param string A törölni kivánt mappához vezető útvonal
*/
void rm(string);
/**
*@brief Filelétrehozás
*@param string A nem létező fájl neve
*@warning Nem létező fájl esetén hibaüzenet
*/
void touch(string);
/**
*@brief Mappa létrehozás
*@param string A nem létező mappa neve
*@warning Nem létező mappa esetén hibaüzenet
*/
void mkdir(string);
/**
* @brief A jelenlegi mappa tartalmának listázása
*/
void ls();
/**
*@brief Lépés a következő létező mappába
*@param string A létező mappa neve
*@warning Nem létező mappa esetén hibaüzenet
*/
bool cd(string);
/**
*@brief A beírt command alaki ellenőrzése
*@param string A meghívni kivánt command
*@param vector A beírt argumentumok egy vectorban
*@param bool Ha a user virtuális fájlrendszert alkalmazza ne ellenőrizzen
*/
bool inputCheck(string , vector<string>, bool );
/**
* @brief A tartokozási helyünket itt tároljuk, melyik mappában vagyunk épp
*/
Directory* currentDir;
void start();
/**
* @brief Megnézi, hogy van e ilyen file az aktuális mappában
* @param string A fájl neve
*/
bool hasFile(string);
/**
* @brief Megnézi, hogy van e ilyen mappa az aktuális mappában
* @param string A mappa neve
*/
bool hasDir(string);
/**
* @brief Feldolgozza az útvonal stringet
* @param string Az útovonal string
* @return Visszaadja a szétszedett útvonalat sorrendben
*/
vector<string> processPath(string);
};
#endif // FILESYSTEM_H