📄 common.c
字号:
///////////////////////////////////////////////////////////////////////////////
//
// 文 件: Common.c
// 普通函数
//
// 作 者: 江南孤峰
// 联 系:QQ: 403324669
// 时 间: 2007--3--3
//
///////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <direct.h>
#include <conio.h>
#include "FilePass.h"
// 显示菜单
void ShowMenu(
char *strAddFileSuffix,
char *strFreeFileSuffix,
int iProgramStatus
){
char Directory[_MAX_PATH];
if(_getcwd(Directory,_MAX_PATH)!=NULL)
printf("\n当前工作目录: %s\n",Directory);
else
printf("\n当前工作目录: 获取失败 \n");
printf("文件类型: 待加密文件[%s]",strAddFileSuffix);
printf("\t加密后文件[%s]\n",strFreeFileSuffix);
printf("文件处理: ");
PrintDeleteFileMethod(iProgramStatus);
printf("\n备 分 器: %s\n",(iBackupProgram == ON)?"开":"关");
ShowFunctionMenu();
}
// 打印当前加密器的文件处理方式
void PrintDeleteFileMethod(int iProgramStatus){
switch(iProgramStatus){
case DELETE_PASS_FILE:
printf("只在解密后删除加密文件");
break;
case DELETE_SOURCE_FILE:
printf("只在加密后删除原始文件");
break;
case DELETE_PASS_SOURCE_FILE:
printf("加密后删除原始文件,解密后删除加密文件");
break;
case DELETE_NONE:
printf(" 不删除文件");
break;
default:
printf("文件处理方式未知");
}
}
// 修改加密器配置
void UpdateProgramStation(
char *strAddFileSuffix,
char *strFreeFileSuffix,
int *iProgramStatus
){
int iSelectUpdate = 0;
int iSuccess = FALSE;
char buffer[FILE_SUFFIX_LENGTH+8]={FILE_SUFFIX_LENGTH + 4};
printf("============================ 加密器配置菜单 =========================\n");
printf("1:待加密文件类型 当前为[%s]\n",strAddFileSuffix);
printf("2:加密文件显示类型 当前为[%s]\n",strFreeFileSuffix);
printf("3:备分器状态 当前为[%s]\n",iBackupProgram == ON?"开":"关");
printf("4:文件处理方式 当前为[");
PrintDeleteFileMethod(*iProgramStatus);
printf("]\n请选择您要修改的项目:");
scanf("%d",&iSelectUpdate);
getchar();
switch(iSelectUpdate){
case 1: iSuccess = UpdateSuffix(ADD_PASS,strAddFileSuffix);
break;
case 2: iSuccess = UpdateSuffix(FREE_PASS,strFreeFileSuffix);
break;
case 3: iBackupProgram = (iBackupProgram == ON)?OFF:ON;
iSuccess = TRUE;
break;
case 4: iSuccess = UpdateDeleteFileMethod(iProgramStatus);
break;
default:puts("没有该选项 \n");
break;
}
printf("%s\n",iSuccess == TRUE?"修改操作成功":"修改操作失败");
}
// 修改文件类型
int UpdateSuffix(int iOperate,char *strFileSuffix){
char buffer[FILE_SUFFIX_LENGTH+8]={FILE_SUFFIX_LENGTH + 4};
char *pSuffixTemp;
if(iOperate == ADD_PASS)
printf("请输入待加密文件类型:");
else
printf("请输入加密文件显示类型:");
pSuffixTemp = _cgets(buffer);
if(strlen(pSuffixTemp) > FILE_SUFFIX_LENGTH){
printf("文件后缀长度超过 %d \n",FILE_SUFFIX_LENGTH);
return FALSE;
}
else if(pSuffixTemp[0] != '.'){
puts("文件后缀形式为[.xxxx],后缀名错误 !\n");
return FALSE;
}
else
strcpy(strFileSuffix,pSuffixTemp);
return TRUE;
}
// 修改文件处理方式
int UpdateDeleteFileMethod(int *iProgramStatus){
int iSelectUpdate = -1;
puts("处理方式如下:");
printf(" %d: %s\n",DELETE_PASS_FILE,"只在解密后删除加密文件");
printf(" %d: %s\n",DELETE_SOURCE_FILE,"只在加密后删除原始文件");
printf(" %d: %s\n",DELETE_PASS_SOURCE_FILE,
"加密后删除原始文件,解密后删除加密文件");
printf(" %d: %s\n",DELETE_NONE,"不删除文件");
printf("请选择文件处理方式:");
scanf("%d",&iSelectUpdate);
getchar();
switch(iSelectUpdate){
case DELETE_PASS_FILE:
*iProgramStatus = DELETE_PASS_FILE;
break;
case DELETE_SOURCE_FILE:
*iProgramStatus = DELETE_SOURCE_FILE;
break;
case DELETE_PASS_SOURCE_FILE:
*iProgramStatus = DELETE_PASS_SOURCE_FILE;
break;
case DELETE_NONE:
*iProgramStatus = DELETE_NONE;
break;
default:
puts("没有该选项 \n");
break;
}
return TRUE;
}
// 操作后文件处理
void MyDeleteFile(char *strFileName,int iProgramStatus,int iOperate){
int iSuccess = TRUE;
switch(iProgramStatus){
case DELETE_PASS_FILE:
if(iOperate == ADD_PASS)
return ;
break;
case DELETE_SOURCE_FILE:
if(iOperate == FREE_PASS)
return ;
break;
case DELETE_PASS_SOURCE_FILE:
break;
case DELETE_NONE:
return ;
}
if(iOperate == ADD_PASS && iBackupProgram == ON){
BackupFile(strFileName);
return ;
}
if(remove(strFileName))
printf("错误: 删除文件: %s失败 !\n",strFileName);
else
printf("删除文件: %s 完成\n",strFileName);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -