?? 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 + -