From 643eab694391a6e9faf086b5e0e4bedba71238d7 Mon Sep 17 00:00:00 2001 From: Pietro228 <53868994+Pietro228@users.noreply.github.com> Date: Fri, 12 Feb 2021 18:53:38 +0100 Subject: [PATCH] Added changing file extension on encryption --- FileExplorer.c | 77 ++++++++++++++++++++++++++++------- FileExplorer.depend | 6 +-- bin/Debug/FileExplorer.exe | Bin 107890 -> 111470 bytes bin/Release/FileExplorer.exe | Bin 30720 -> 32256 bytes fe_functions.h | 73 +++++++++++++++++++++++++++++++++ obj/Debug/FileExplorer.o | Bin 47469 -> 51750 bytes obj/Release/FileExplorer.o | Bin 16917 -> 19238 bytes 7 files changed, 139 insertions(+), 17 deletions(-) diff --git a/FileExplorer.c b/FileExplorer.c index 92599b3..8254b31 100644 --- a/FileExplorer.c +++ b/FileExplorer.c @@ -67,6 +67,10 @@ int main(void) { printf("\n-----------------------------"); text_color(COLOR_WHITE); + chdir("F:/dokumenty/vyhry2.txt"); + + printf("%s",getcwd(cwd, 1000)); + while(action!=17) { if(strcmp(lastDir, "") == 0){ printf("\n\n\nLast opened directory: You do not have any opened directory.\n\nWhat do you want to do?\n\n\t1. Open directory\n\t2. Create directory\n\t3. Copy directory (coming soon)\n\t4. Delete directory\n\t5. Open file\n\t6. Create file\n\t7. Copy file\n\t"); @@ -667,9 +671,14 @@ int main(void) { if(command(file_url, lastDir) != 0)goto aborting_encrypting; //Checks for commands + if(file_url[strlen(file_url)-3] != 't' && file_url[strlen(file_url)-2] != 'x' && file_url[strlen(file_url)-1] != 't') { + text_color(COLOR_RED); + printf("\nFile '%s' is not a text file.\n",file_url); + text_color(COLOR_WHITE); + } else { + char fileenstr[5000] = ""; char enstr[5000] = ""; - char fileenname[1000] = ""; strcpy(lastDirFile, lastDir); strcat(lastDirFile, file_url); @@ -677,16 +686,6 @@ int main(void) { file = fopen(file_url, "r"); - /* - Trying to change file extension - - chdir(file_url); //Sets current working dir - //getcwd(cwd, 1000) - - strcpy(fileenname, getcwd(cwd, 1000)); - strcat - */ - if(file == NULL) { //Error handler text_color(COLOR_RED); printf("\nUnable to find file '%s'.\n",file_url); @@ -709,6 +708,27 @@ int main(void) { text_color(COLOR_GREEN); printf("\nFile '%s' has been encrypted.",file_url); text_color(COLOR_WHITE); + + char newFileEnName[1000] = ""; + + strcpy(newFileEnName, str_replace(file_url, get_filename_from_path(file_url), "")); + strcat(newFileEnName, get_filename_from_path(file_remove_extension(file_url))); + strcat(newFileEnName, ".encf"); + + renameResult = rename(file_url, newFileEnName); //Changing file name + + if(renameResult == 0) { + text_color(COLOR_GREEN); + printf("\nFile has been renamed to '%s'.",get_filename_from_path(newFileEnName)); + text_color(COLOR_WHITE); + } else { + text_color(COLOR_RED); + printf("\nFile has not been renamed to '%s'.",get_filename_from_path(newFileEnName)); + text_color(COLOR_WHITE); + } + + } + } text_color(COLOR_YELLOW); @@ -725,7 +745,13 @@ int main(void) { scanf("%d",&file_url); gets(file_url); - if(command(file_url, lastDir) != 0)goto aborting_decrypting; //Checks for commands + if(command(file_url, lastDir) != 0)goto aborting_decrypting; //Checks for commands enc + + if(file_url[strlen(file_url)-4] != 'e' && file_url[strlen(file_url)-3] != 'n' && file_url[strlen(file_url)-2] != 'c' && file_url[strlen(file_url)-1] != 'f') { + text_color(COLOR_RED); + printf("\nFile '%s' is not encrypted.\n",file_url); + text_color(COLOR_WHITE); + } else { char filedestr[5000] = ""; char destr[5000] = ""; @@ -736,6 +762,8 @@ int main(void) { file = fopen(file_url, "r"); + + if(file == NULL) { //Error handler text_color(COLOR_RED); printf("\nUnable to find file '%s'.\n",file_url); @@ -756,8 +784,29 @@ int main(void) { fclose(file); text_color(COLOR_GREEN); - printf("\nFile '%s' has been encrypted.",file_url); + printf("\nFile '%s' has been decrypted.",file_url); + text_color(COLOR_WHITE); + + char newFileEnName[1000] = ""; + + strcpy(newFileEnName, str_replace(file_url, get_filename_from_path(file_url), "")); + strcat(newFileEnName, get_filename_from_path(file_remove_extension(file_url))); + strcat(newFileEnName, ".txt"); + + renameResult = rename(file_url, newFileEnName); //Changing file name + + if(renameResult == 0) { + text_color(COLOR_GREEN); + printf("\nFile has been renamed to '%s'.",get_filename_from_path(newFileEnName)); + text_color(COLOR_WHITE); + } else { + text_color(COLOR_RED); + printf("\nFile has not been renamed to '%s'.",get_filename_from_path(newFileEnName)); text_color(COLOR_WHITE); + } + + } + } text_color(COLOR_YELLOW); @@ -770,7 +819,7 @@ int main(void) { break; case 15: //About - printf("\n\n\nFile explorer 1.1.0\nThis application is under APACHE LICENSE 2.0 - \"./LICENSE.md\"\nPetr Pavlik 2021 - BeXCool\n\nWeb: bexcool.eu\nEmail: bxc@post.cz"); + printf("\n\n\nFile explorer 1.1.1\nThis application is under APACHE LICENSE 2.0 - \"./LICENSE.md\"\nPetr Pavlik 2021 - BeXCool\n\nWeb: bexcool.eu\nEmail: bxc@post.cz"); text_color(COLOR_YELLOW); printf("\n\nPress any key to continue."); text_color(COLOR_WHITE); diff --git a/FileExplorer.depend b/FileExplorer.depend index 7afa5a0..783e1cf 100644 --- a/FileExplorer.depend +++ b/FileExplorer.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1613038148 source:f:\c projets\fileexplorer\fileexplorer.c +1613151976 source:f:\c projets\fileexplorer\fileexplorer.c @@ -10,14 +10,14 @@ "fe_functions.h" -1612801954 f:\c projets\fileexplorer\fe_functions.h +1613151339 f:\c projets\fileexplorer\fe_functions.h "colors.h" -1612780843 f:\c projets\fileexplorer\colors.h +1613136931 f:\c projets\fileexplorer\colors.h diff --git a/bin/Debug/FileExplorer.exe b/bin/Debug/FileExplorer.exe index e3241f2c562530233a97562d9d3e4f7158f1d41a..a5a91bcd6139f1933b6688b821a912d8d9ea6aec 100644 GIT binary patch delta 32047 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∾s&UD@ja!gj2ELu7eZl};&6`?TYwmG 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 delta 11188 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 Sg0dzeqipD+_ZqEC_5E*OaJ^>$ diff --git a/fe_functions.h b/fe_functions.h index 651ca91..26305b6 100644 --- a/fe_functions.h +++ b/fe_functions.h @@ -91,3 +91,76 @@ int remove_directory(const char *path) { return r; } + +char* get_fileextension_from_path(char* filepath) { + + char *filename = (char*)calloc(1, sizeof(filepath)); + filename = (strrchr(filepath, '.'))+1; + //printf("fileextension: %s\n", filename); + + return filename; + +} + +char* get_filename_from_path(char* filepath) { + + char *filename = (char*)calloc(1, sizeof(filepath)); + filename = (strrchr(filepath, '/'))+1; + //printf("filename: %s\n", filename); + + return filename; + +} + +char *file_remove_extension(char* myStr) { + char *retStr; + char *lastExt; + if (myStr == NULL) return NULL; + if ((retStr = malloc (strlen (myStr) + 1)) == NULL) return NULL; + strcpy (retStr, myStr); + lastExt = strrchr (retStr, '.'); + if (lastExt != NULL) + *lastExt = '\0'; + return retStr; +} + +char *str_replace(char *orig, char *rep, char *with) { + char *result; // the return string + char *ins; // the next insert point + char *tmp; // varies + int len_rep; // length of rep (the string to remove) + int len_with; // length of with (the string to replace rep with) + int len_front; // distance between rep and end of last rep + int count; // number of replacements + + // sanity checks and initialization + if (!orig || !rep) + return NULL; + len_rep = strlen(rep); + if (len_rep == 0) + return NULL; // empty rep causes infinite loop during count + if (!with) + with = ""; + len_with = strlen(with); + + // count the number of replacements needed + ins = orig; + for (count = 0; tmp = strstr(ins, rep); ++count) { + ins = tmp + len_rep; + } + + tmp = result = malloc(strlen(orig) + (len_with - len_rep) * count + 1); + + if (!result) + return NULL; + + while (count--) { + ins = strstr(orig, rep); + len_front = ins - orig; + tmp = strncpy(tmp, orig, len_front) + len_front; + tmp = strcpy(tmp, with) + len_with; + orig += len_front + len_rep; // move to next "end of rep" + } + strcpy(tmp, orig); + return result; +} diff --git a/obj/Debug/FileExplorer.o b/obj/Debug/FileExplorer.o index aad154059ee83fee9b931b108c5b11b562211dbb..be99d3ed9dfa868eb3876bf7d72e4be8d26fd959 100644 GIT binary patch delta 16319 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 literal 16917 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