-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdirectory.cpp
More file actions
executable file
·125 lines (107 loc) · 2.37 KB
/
directory.cpp
File metadata and controls
executable file
·125 lines (107 loc) · 2.37 KB
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <iostream>
#include <fstream>
#include <cstring>
#include "directory.h"
#include "list.cpp"
using std::cout;
using std::endl;
File::File(const char *nm)
{
name = new char[strlen(nm) + 1];
strcpy(name, nm);
} //file constructor
const char* File::getName()
{
return name;
} //file getname
File::~File()
{
if (name)
delete []name;
} //file deconstructor
bool File::find(const char *fin)
{
if (!strcmp(name, fin))
{
cout << fin << endl;
return true;
} //print it
return false;
} //file find
void File::insert(File &ins) {}//file insert
bool File::operator==(const File &rhs) const
{
if (!strcmp(name, rhs.name))
{
return true;
} //equals
else // if not equals
return false;
} //file operator==
bool File::operator<(const File &rhs) const
{
if (strcmp(name, rhs.name) > 0)
{
return true;
} //less than
else //if not less than
return false;
} //file operator<
bool File::operator>(const File &rhs) const
{
if (strcmp(name, rhs.name) < 0)
{
return true;
} //greater than
else // if not greater than
return false;
} //file operator>
Directory::Directory(const char *nm) : File(nm), files() {} //constructor
Directory::~Directory() {} //empty destructor
bool Directory::operator==(File &rhs) const
{
if ((strncmp(name, rhs.getName(), strlen(rhs.getName())))
&& (name[strlen(rhs.getName())] == '/'))
{
return true;
} // if equals to this point
else // if not equals
return false;
} //directory operator==
bool Directory::operator<(File &rhs) const
{
if ((strcmp(name, rhs.getName())) > 0)
{
return true;
} //less than
else // if not less than
return false;
} //directory operator<
bool Directory::operator>(File &rhs) const
{
if ((strcmp(name, rhs.getName())) < 0)
{
return true;
} //greater than
else // if not greater than
return false;
} //directory operator>
bool Directory::find(const char *ins)
{
if (!strcmp(name, ins))
{
files.print();
return true;
} //matches directory
File* aaa = new File(ins);
files.find(aaa);
return true;
} //directory find
void Directory::insert(File &ins)
{
if (strcmp(name, ins.getName()))
{
File* temp = &ins;
files.insert(temp);
} //check for insertion of self
} //directory insert