資源簡介
生成一個磁盤文件:A,A為虛擬磁盤,程序對A進行操作,完成了類似cmd的一下基本功能,可以進行磁盤整理。

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#define?FILENAME_LEN?21 //文件名長度
#define?INPUT_LEN?81 //輸入長度
#define?COMMAND_LEN?11 //指令長度
#define?ONE_PIECE_SIZE?512 //一塊的大小
#define?SIZE?101 //塊數
#define?CHILDNUMBER?30
//結點結構
int?ifEmpty[101]; //0表示該塊未被占用,1表示已被目錄或文件占用,2表示被文件內容占用
typedef?struct?FileNode?{
int?isdir; //目錄文件識別標志
char?filename[FILENAME_LEN];//文件名/目錄名
short?ChildLocation[CHILDNUMBER]; //文件內容的磁盤地址?如果是文件?則偶數表示起始塊?奇數表示長度
short?adr; //文件的地址
short?parent; //父目錄的位置
}*PFileNode;
void?Init();//初始化文件樹
int?ParseCommand();//接受輸入的命令并把其分解成操作名和路徑文件名
void?ExecuteCommand();//執行命令
void?OpenOld();
int?cdComd(); //處理cd命令
int?editComd(); //處理edit命令
int?delComd(); //處理del命令
int?rdComd(); //處理rd命令
int?dirComd(); //處理dir命令
int?mdComd(); //處理md命令
int?helpComd(); //處理help命令
int?renComd(); //處理ren命令??文件或目錄重命名
int?xcopyComd();
int?moveComd();
int?EmptyPiece();
int?moreComd();
int?copyComd(); //從外界拷貝txt文件到模擬系統中
void?defragComd(); //磁盤碎片整理
int?filedefragComd();
int?FindPath(char?*ph);//尋找參數ph所指向的路徑
int?FindFilename(char?Para2[]);//從參數Para2中找到要建立或刪除的文件、目錄名,并把指針指向其父親結點
FileNode*?CreateFileNode(char?filename[]int?isdir); //創建結點
FileNode*?GetFileNode(int?pos); //從A中獲取結點
FileNode*?GetNextFileNode(PFileNode?cp); //根據路徑獲取下一個節點
void?clone(FileNode?FN);
int?GetInput(char*?bufferunsigned?int?buffer_len);//獲取輸入
int?CheckCommand();//命令檢查
int?GetDir(int?beginchar*?pathchar*?curDir);//獲取路徑
void?Trim(char*?str);
fstream?DiscWriteRead;
FileNode?newFile; //當前節點
FileNode?currentFile; //新節點
FileNode?nextFile; //下一個節點
char?path[INPUT_LEN-COMMAND_LEN];//記錄當前走過的路徑
char?curpath[INPUT_LEN-COMMAND_LEN]Para1[COMMAND_LEN]Para2[INPUT_LEN-COMMAND_LEN]?Para3[FILENAME_LEN];
char?filename[FILENAME_LEN];
int?delNumber;
//主函數
int?main()
{
cout<<“請選擇操作:“< cout<<“1.從已有文件中生成模擬文件系統。“< cout<<“2.重新生成模擬文件系統。“< int?op;
cin>>op;
strcpy(path“/“);
switch(op){
case?1:
OpenOld();
break;
case?2:
Init();//初始化文件樹
break;
}
while(true){
if(ParseCommand())//分解命令
ExecuteCommand();//執行命令
}
return?0;
}
void?OpenOld(){
Write.open(“A“ios::out);
Read.open(“A“ios::in);
Read.seekg(0);
Read.read((char*)ifEmptySIZE);
}
//執行命令子函數
void?ExecuteCommand(){
int?sign;
????????????//根據參數Para1調用相應的功能處理模塊
if(strcmp(Para1“cd“)==0)?
sign=cdComd(); //cd命令
else?if(strcmp(Para1“edit“)==0)?
sign=editComd(); //edit命令
else?if(strcmp(Para1“del“)==0)?
sign=delComd(); //del命令
else?if(strcmp(Para1“dir“)==0)?
sign=dirComd(); //dir命令
else?if(strcmp(Para1“md“)==0)?
sign=mdComd(); //md命令
else?if(strcmp(Para1“rd“)==0)?
sign=rdComd(); //rd命令
else?if(strcmp(Para1“exit“)==0)
exit(0); //exit命令
else?if(strcmp(Para1“help“)==0)
sign?=?helpComd();
else?if(strcmp(Para1“ren
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????51713??2010-06-05?13:20??課程設計\FileSystem\A
?????文件????????877??2010-06-03?23:10??課程設計\FileSystem\a.txt
?????文件??????51713??2010-09-25?22:05??課程設計\FileSystem\Debug\A
?????文件?????221262??2010-06-05?13:14??課程設計\FileSystem\Debug\filsSystem.exe
?????文件?????538788??2010-06-05?13:14??課程設計\FileSystem\Debug\filsSystem.ilk
?????文件??????70998??2010-06-05?13:14??課程設計\FileSystem\Debug\filsSystem.obj
?????文件?????310760??2010-06-05?00:43??課程設計\FileSystem\Debug\filsSystem.pch
?????文件?????599040??2010-06-05?13:14??課程設計\FileSystem\Debug\filsSystem.pdb
?????文件??????50176??2010-06-05?13:18??課程設計\FileSystem\Debug\vc60.idb
?????文件??????61440??2010-06-05?13:14??課程設計\FileSystem\Debug\vc60.pdb
?????文件??????25983??2010-06-05?13:14??課程設計\FileSystem\filsSystem.cpp
?????文件???????3449??2010-05-31?15:59??課程設計\FileSystem\filsSystem.dsp
?????文件????????545??2010-05-31?16:47??課程設計\FileSystem\filsSystem.dsw
?????文件??????50176??2010-09-03?10:00??課程設計\FileSystem\filsSystem.ncb
?????文件??????49664??2010-09-03?10:00??課程設計\FileSystem\filsSystem.opt
?????文件???????1520??2010-06-05?13:14??課程設計\FileSystem\filsSystem.plg
?????文件?????571392??2010-06-05?13:51??課程設計\實習報告書.doc
????.......?????62464??2010-05-07?06:21??課程設計\操作系統實習任務書(2010).doc
?????文件??????77824??2010-06-04?23:21??課程設計\操作系統流程圖\分解指令.vsd
?????文件??????51200??2010-06-04?09:59??課程設計\操作系統流程圖\整體流程圖.vsd
?????文件??????24064??2010-06-04?23:22??課程設計\操作系統流程圖\流程圖.vsd
????.......?????30720??2010-05-04?00:26??課程設計\課程設計時間安排.doc
?????目錄??????????0??2010-09-25?22:00??課程設計\FileSystem\Debug
?????目錄??????????0??2010-09-03?10:00??課程設計\FileSystem
?????目錄??????????0??2010-06-05?23:49??課程設計\操作系統流程圖
?????目錄??????????0??2010-09-25?21:44??課程設計
-----------?---------??----------?-----??----
??????????????2905768????????????????????26
- 上一篇:gps-gsm的仿真程序 c語言
- 下一篇:libstdc++.so.6.0.17
評論
共有 條評論