資源簡介
開發工具:word,vc win32api
設計和實現一個簡單的文件系統,要求包括目錄、普通文件和文件的存儲
文件系統的目錄結構采用類似Linux的樹狀結構;
要求模擬的操作包括:
目錄的添加、刪除、重命名;
目錄的顯示(列表)
文件的添加、刪除、重命名
文件和目錄的拷貝
用戶進入時顯示可用命令列表;用戶輸入help時顯示所有命令的幫助文檔; 輸入某個命令+?時顯示該條命令的使用說明
用戶輸入exit時退出該系統
實驗實現基于windows平臺;
實驗開發語言可以選用C/c++
代碼片段和文件信息
#include
#include
#include
#include
#include?
using?namespace?std;
typedef?struct?FCB
{
string?FileName;?//文件名
string?FileType;?//文件類型
vector?*?subdirectory;?//下一級目錄地址
vector?*?updirectory;?//上一級目錄地址
string?parent;?//父文件夾名
SYSTEMTIME?creating_time;?//創建時間
// SYSTEMTIME?last_modified_time;?//最近訪問時間
string?status;?//文件狀態
string?details;//文件內容
}FCB;
FCB?fileCopy;//全局變量,用于保存復制或剪切的文件或文件夾
//登錄
void?Login()
{
string?namepassword;
cout?<<“\n\n\n“;
cout?<<“\t\t????????????操作系統大型試驗-模擬文件系統“< cout?<<“\t\t?????????????作者:XXX“< system(“pause“);
????system(“cls“);
}
//顯示時間
void?show_time(SYSTEMTIME&?sys)
{
cout?<}
//顯示當前目錄中的所有文件和文件夾
void?dir(vector&?a)
{
int?length?=?a.size();
int?i?=?0;
for(i=1;i {
if(a[i].FileType?!=?““)
{
cout?<“文件“< cout?<“.“?< cout?<“????創建時間:?“;
show_time(a[i].creating_time);
cout?< /// show_time(a[i].last_modified_time);
cout?< cout?< }
else
{
cout?<“文件夾“+a[i].FileName< cout?<“??????創建時間:?“;
show_time(a[i].creating_time);
cout?<// show_time(a[i].last_modified_time);
cout?< cout?< }
}
if(i==1)?cout<<“當前目錄下沒有內容!“< }
//顯示幫助信息
void?help()
{
cout?<“dir??“?<“顯示當前目錄中的所有文件和文件夾“?< cout?<“help??“?<“顯示幫助信息“?< cout?<“命令+???“?<“顯示該命令的說明文檔,如:dir?“?< cout?<“create?xxx??“?<“在當前目錄中創建文件xxx.yyy或文件夾xxx“?< cout?<“delete?xxx??“?<“在當前目錄中刪除文件xxx.yyy或文件夾xxx“?< cout?<“open?xxx??“?<“打開當前目錄中的文件xxx.yyy或文件夾xxx“?< cout?<“close?xxx??“?<“關閉當前目錄中的文件xxx.yyy或文件夾xxx“?< cout?<“cd?..??“?<“返回到上一級目錄“?< cout?<“cd?xxx??“?<“轉到當前目錄的xxx子目錄“?< cout?<“cd?root??“?<“轉到根目錄root“?< cout?<“rename?xxx?yyy??“?<“重命名“?< cout?<“copy?xxx??“?<“復制“?< cout?<“cut?xxx??“?<“剪切“?< cout?<“paste??“?<“粘貼“?< cout?<“attrib?xxx??“?<“顯示xxx文件或文件夾的屬性“?< cout?<“exit??“?<“退出“?<}
//判斷是否是幫助請求命令
bool?is_require(string&?str)
{
return?(str[str.length()-1]?==?‘?‘);
}
//顯示命令的說明
void?command_explan(string&?command)
{
if(command==“dir?“)?cout?<“\“dir\“命令用于顯示當前目錄中的所有文件和文件夾“?< else?if(command==“help?“)?cout?<“\“help\“命令用于顯示幫助信息“?< else?if(command==“create?“)?cout?<“\“create\“命令用于在當前目錄中創建文件或文件夾,如:create?hello.txtcreate?hello注意:創建文件必須有擴展名,無擴展名則認為是文件夾文件和文件不能同名,文件夾和文件夾不能同名,文件和文件夾可以同名“?< else?if(command==“delete?“)?cout?<“\“delete\“命令用于在當前目錄中刪除文件或文件夾,如:
- 上一篇:C++實現字符串求交集、并集、差集
- 下一篇:第三方串口類
評論
共有 條評論