invented "delete" function

master
Numillyah 2022-06-22 21:57:50 +03:00
parent 21104b3d55
commit 93d198cabf
1 changed files with 52 additions and 0 deletions

View File

@ -250,3 +250,55 @@ int print_list(Folder *fld, int mode)
printf("└──────────┴──────────┴────────────────────────────────────────────────────┘\n");
}
}
void delete_file(File *deleting)
{
int i; //iterator
int file_ind=-1;
if (deleting != NULL) {
Folder* parent = deleting->parent;
for (i = 0; i < parent->files_count_cur; i++)
{
if (parent->files[i] == deleting)
file_ind = i;
}
for (i = file_ind+1; i < parent->files_count_cur; i++)
{
parent->files[i] = parent->files[i + 1];
}
parent->files[parent->files_count_cur - 1] = NULL;
parent->files_count_cur--;
}
}
void delete_folder(Folder* deleting)
{
int i; //iterator
int fold_ind = -1;
if (deleting != NULL) {
Folder* parent = deleting->parent;
for (i = 0; i < parent->folders_count_cur; i++)
{
if (parent->folders[i] == deleting)
fold_ind = i;
}
free(deleting->files);
while (deleting->folders_count_cur)
{
delete_folder(deleting->folders[0]);
}
free(deleting->folders);
for (i = fold_ind + 1; i < parent->folders_count_cur; i++)
{
parent->folders[i] = parent->folders[i + 1];
}
parent->folders[parent->folders_count_cur - 1] = NULL;
parent->folders_count_cur--;
}
}