?? filemain.c
字號:
///////////////////////////////////////////////////////////////////////////////
//
// 文 件: FileMain.c
// 主函數
//
// 作 者: 江南孤峰
// 聯 系:QQ: 403324669
// 時 間: 2007--3--3
//
///////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <direct.h>
#include <io.h>
#include <time.h>
#include <conio.h>
#include "FilePass.h"
// 全局變量
int iBackupProgram = ON; // 備分器開關
char strBackupDirect[_MAX_PATH] = {""}; // 存儲備分目錄,即加密器所在目錄
// 顯示功能菜單
void ShowFunctionMenu(void){
printf("=========================== 功 能 菜 單 ===========================\n");
printf("%-36s%-36s\n"," 1: 手動加密單個文件",
" 2: 手動解密單個文件");
printf("%-36s%-36s\n"," 3: 自動加密當前目錄里的所有文件",
" 4: 自動解密當前目錄里的所有文件");
printf("%-36s%-36s\n"," 5: 遞歸加密指定目錄下的所有文件",
" 6: 遞歸解密指定目錄下的所有文件");
printf("%-36s%-36s\n"," 7: 自動加密我的電腦里的所有文件",
" 8: 自動解密我的電腦里的所有文件");
printf("%-36s%-36s\n"," 9: 修改加密器配制",
"10: 恢復被加密文件至原始位置");
printf("%-36s\n", "11: 退出程序");
printf("====================================================================\n");
printf("選擇你要執行的操作:");
}
// 主函數
int main(void){
char strFileName[FILE_LENGTH+6] = {""};
char strAddFileSuffix[FILE_SUFFIX_LENGTH] = {".txt"};
char strFreeFileSuffix[FILE_SUFFIX_LENGTH] = {".pass"};
char strDES[DES_LENGTH + 2] = {""};
char strPass[PASS_LENGTH + 2] = {""};
char strPartition[10] = {""};
int iUserCmd = 0;
int iContinueFlag = TRUE;
int iDrivers = 0;
int count = 0;
int nFileDealMethod = DELETE_PASS_SOURCE_FILE;
printf("********************************************************************\n");
printf("\t簡 單 文 本 文 件 加 密 器 ( DOS版 )\n");
printf("\t作 者: 江 南 孤 峰 [ QQ:403324669 ]\n");
printf("\t時 間: 2007 -- 3 -- 7\n");
printf("********************************************************************\n");
_getcwd(strBackupDirect,_MAX_PATH);
strcat(strBackupDirect,"\\backup");
CreateBackupDirectAndFile();
while(iContinueFlag == TRUE){
ShowMenu(strAddFileSuffix,strFreeFileSuffix,nFileDealMethod);
scanf("%d",&iUserCmd);
getchar();
if(iUserCmd < 9 && iUserCmd > 0){
if( (iUserCmd % 2) &&
(GetFilePassDES(strPass,strDES,ADD_PASS) == FAILED) )
continue;
else if( !(iUserCmd % 2) &&
(GetFilePassDES(strPass,strDES,FREE_PASS) == FAILED) )
continue;
}
switch(iUserCmd){
case 1: // 手動加密文件
printf("請輸入欲加密的文件名:");
if( GetUserInputFileName(strFileName)==SUCCESS &&
AddPassForFile(
strFileName,
strAddFileSuffix,
strFreeFileSuffix,
strPass,
strDES
) == SUCCESS
){
printf("文件 %s 加密完成\n",strFileName);
MyDeleteFile(strFileName,nFileDealMethod,ADD_PASS);
}
else
printf("文件 %s 加密失敗\n",strFileName);
break;
case 2: // 手動解密文件
printf("請輸入欲解密的文件名:");
if( GetUserInputFileName(strFileName) == SUCCESS &&
FreePassForFile(
strFileName,
strFreeFileSuffix,
strPass,
strDES
) == SUCCESS
){
printf("文件 %s 解密完成\n",strFileName);
MyDeleteFile(strFileName,nFileDealMethod,FREE_PASS);
}
else
printf("文件 %s 解密失敗\n",strFileName);
break;
case 3: // 自動加密當前目錄里的所有文件
count = AutoAddPassForCurrentDirFile(
strAddFileSuffix,
strFreeFileSuffix,
nFileDealMethod,
strPass,
strDES
);
printf("\n共加密文件: %d \n",count);
break;
case 4: // 自動解密當前目錄里的所有文件
count = AutoFreePassForCurrentDirFile(
strFreeFileSuffix,
nFileDealMethod,
strPass,
strDES
);
printf("\n共解密文件: %d \n",count);
break;
case 5:// 遞歸加密指定目錄下的所有文件
if(ChangeCurrentDirect() == SUCCESS){
count = AutoAddPassForUserDefDirFile(
strAddFileSuffix,
strFreeFileSuffix,
nFileDealMethod,
strPass,
strDES
);
printf("\n共加密文件: %d \n",count);
}
break;
case 6:// 遞歸解密指定目錄下的所有文件
if(ChangeCurrentDirect() == SUCCESS){
count = AutoFreePassForUserDefDirFile(
strFreeFileSuffix,
nFileDealMethod,
strPass,
strDES
);
printf("\n共解密文件: %d \n",count);
}
break;
case 7:// 加密我的電腦里的所有文件
if(iBackupProgram == OFF){
puts("備分器處于關閉狀態,為了安全,請先打開備分器 !");
break;
}
count = AutoAddPassForAllFile(
strAddFileSuffix,
strFreeFileSuffix,
nFileDealMethod,
strPass,
strDES
);
printf("\n共加密文件: %d \n",count);
break;
case 8: // 解密我的電腦里的所有文件
count = AutoFreePassForAllFile(
strFreeFileSuffix,
nFileDealMethod,
strPass,
strDES
);
printf("\n共解密文件: %d \n",count);
break;
case 9: // 修改加密器的配制
UpdateProgramStation(
strAddFileSuffix,
strFreeFileSuffix,
&nFileDealMethod
);
break;
case 10: // 從備分目錄中恢復被加密文件到原位置
GetBackFile(strAddFileSuffix,strFreeFileSuffix);
break;
case 11: // 結束程序
iContinueFlag = FALSE;
break;
default:
printf("\n錯誤:沒有該選項 !\n");
break;
}
iUserCmd = -1; // 清除原輸入
system("pause");
}
return SUCCESS;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -