Added delete routine

This commit is contained in:
luca0N! 2020-06-10 12:53:08 -03:00
parent a720fab4ba
commit d82f98e5d8
No known key found for this signature in database
GPG Key ID: 9F1B99B522287CAB
2 changed files with 23 additions and 4 deletions

22
main.c
View File

@ -64,10 +64,15 @@ void getAdditionalDirs(){
}
void cleanDir(const char* path){
printf("%s %s\n", STR_CLEANING_DIR, path);
// Path with wildcard
char wildPath[strlen(path) + 1];
strcpy(wildPath, path);
strcat(wildPath, "*");
printf("%s %s\n", STR_CLEANING_DIR, wildPath);
// Fetch files in dir
WIN32_FIND_DATA data;
HANDLE hFind = FindFirstFile(path, &data);
HANDLE hFind = FindFirstFile(wildPath, &data);
unsigned int iteration = 0;
if (hFind != INVALID_HANDLE_VALUE){
do{
@ -76,6 +81,19 @@ void cleanDir(const char* path){
if (iteration <= 2)
continue;
printf("%s %s\n", STR_FOUND_ITEM, data.cFileName);
// Attempt to delete file...
int pathSize = strlen(wildPath) + strlen(data.cFileName);
char fullPath[pathSize];
strcpy(fullPath, path);
strcat(fullPath, data.cFileName);
if (DeleteFile(fullPath) == 0){
printf(" %s\n", STR_FAILED_FILE);
printf(" --> %s\n", fullPath);
printf(" --> %#010x\n", GetLastError());
} else
printf(" %s\n", STR_DELETED_FILE);
} while(FindNextFile(hFind, &data));
} else {
printf("%s\n", STR_FAILED_DIR_LIST);

5
str.h
View File

@ -27,13 +27,14 @@
#define STR_FETCHING_ADD_DIRS "Recolhendo pastas adicionais..."
#define STR_CLEANING_DIR "[Limpando pasta]"
#define STR_REMOVED_FILE "[Arquivo removido]"
#define STR_REMOVED_DIR "[Pasta removida]"
#define STR_DELETED_FILE "[Arquivo removido]"
#define STR_DELETED_DIR "[Pasta removida]"
#define STR_DIR_COUNT "[Contagem de pastas]"
#define STR_FOUND_DIR "[Pasta encontrada]"
#define STR_FOUND_FILE "[Arquivo encontrado]"
#define STR_FOUND_ITEM "[Item encontrado]"
#define STR_FAILED_DIR_LIST "Um erro ocorreu ao tentar enumerar os arquivos dentro de uma pasta especificada."
#define STR_FAILED_FILE "[Arquivo mantido] Não foi possível remover este arquivo pelo seguinte erro:"
#define STR_ERROR_LIC "Falha ao ler arquivo de licença. Visite <https://www.gnu.org/licenses/> para mais informações."