版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 課程名稱___操作系統(tǒng) _____</p><p> 題目名稱___文件系統(tǒng)管理______</p><p> 學(xué)生學(xué)院__計(jì)算機(jī)學(xué)院_________</p><p> 專業(yè)班級(jí)_計(jì)算機(jī)科學(xué)與技術(shù)</p><p&
2、gt; 學(xué) 號(hào) </p><p> 學(xué)生姓名_____ __________</p><p> 指導(dǎo)教師____________</p><p> 200 7 年 6 月 30 日</p><p><b> 文件管理系統(tǒng)</b></p><p> <&
3、lt;操作系統(tǒng)>>1</p><p><b> 課程設(shè)計(jì)報(bào)告1</b></p><p><b> 設(shè)計(jì)目的2</b></p><p><b> 總體設(shè)計(jì)思想2</b></p><p><b> 系統(tǒng)結(jié)構(gòu)設(shè)計(jì):3</b><
4、/p><p><b> 數(shù)據(jù)結(jié)構(gòu)說明:4</b></p><p> 模塊的算法流程圖:6</p><p><b> 程序的運(yùn)行:10</b></p><p> 部份源程序清單:(主要的部份)15</p><p><b> 使用說明書:23</b
5、></p><p><b> 體會(huì),建議24</b></p><p><b> 設(shè)計(jì)目的</b></p><p> 通過課程設(shè)計(jì), 加深對(duì)操作系統(tǒng)各資源管理模塊的理解,掌握操作系統(tǒng)的基本原理及功能,具有初步分析實(shí)際操作系統(tǒng)、設(shè)計(jì)、構(gòu)造和開發(fā)現(xiàn)代操作系統(tǒng)的基本能力。</p><p>&l
6、t;b> 設(shè)計(jì)內(nèi)容要求:</b></p><p> 編寫并調(diào)試一個(gè)樹型目錄結(jié)構(gòu)的文件系統(tǒng),模擬文件管理工作流程。</p><p> 1).設(shè)計(jì)多用戶文件系統(tǒng),采用多級(jí)文件目錄。</p><p> 2).至少要有十個(gè)以上的實(shí)用命令,應(yīng)設(shè)置文件保護(hù)措施。</p><p> 3).設(shè)計(jì)一個(gè)較實(shí)用的用戶界面,方便用戶使用,
7、界面要為用戶提供足夠的選擇信息,不需用戶打入冗長的命令。</p><p><b> 設(shè)計(jì)環(huán)境與工具</b></p><p> ?。?)計(jì)算機(jī)及操作系統(tǒng):PC機(jī),Windows Advance Server 2000</p><p> ?。?)程序設(shè)計(jì)語言:VC++</p><p> ?。?)開發(fā)平臺(tái):Microsoft
8、 Visual C++ 6.0</p><p> ?。?)運(yùn)行平臺(tái):Windows Advance Server 2000</p><p><b> 總體設(shè)計(jì)思想</b></p><p> 多級(jí)文件管理系統(tǒng)中包含的關(guān)系很多,主要是由樹型目錄引起的嵌套關(guān)系,所以為了實(shí)現(xiàn)樹型目錄,嵌套調(diào)用是其中的一個(gè)方法并且能比較好處理這種目錄與文件的存儲(chǔ)關(guān)系
9、。這次課程設(shè)計(jì)主要是利用兩種數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)了這個(gè)要求。一個(gè)是隊(duì)列,一個(gè)是棧。實(shí)現(xiàn)樹型目錄主要是在其中每個(gè)節(jié)點(diǎn)都有父指針,子指針和兄弟指針,其中子指針指向該目錄下的第一個(gè)子節(jié)點(diǎn),而該子節(jié)點(diǎn)的父指針則指向它的上級(jí)目錄。目錄下各子節(jié)點(diǎn)用兄弟指針連接起來。在各命令功能模塊實(shí)現(xiàn)過程中也是主要運(yùn)用指針鏈接實(shí)現(xiàn)。這次主要的功能包括:</p><p> 多用戶管理,每個(gè)用戶可以設(shè)置自己的密碼。</p><p
10、> 多目錄管理,每個(gè)用戶可以建立多個(gè)目錄,多個(gè)文件。</p><p> 用戶界面管理,主要采用Windows 的單文檔窗口,樹型目錄。</p><p> 功能管理:用戶主要可以實(shí)現(xiàn)的功能包括有建立文件,文件夾,文本文件,可執(zhí)行文件,設(shè)置讀寫和執(zhí)行權(quán)限,可讀寫文件,復(fù)制,粘貼,移動(dòng)文件,可以以不同的視圖瀏覽文件,這些視圖有小圖標(biāo),列表,詳細(xì)列表和樹型目錄顯示(默認(rèn)),還有可以把文
11、件放到回收站,也可以在回收站中恢復(fù)文件,當(dāng)然還有刪除文件的功能。</p><p> 小功能管理:一部分功能不是這次設(shè)計(jì)所要求的,但很容易實(shí)現(xiàn),如退出程序,向前向后,地址欄的實(shí)現(xiàn),選擇與反選。</p><p><b> 系統(tǒng)結(jié)構(gòu)設(shè)計(jì):</b></p><p> 這次設(shè)計(jì)主要采用樹型目錄的結(jié)構(gòu),模擬文件管理系統(tǒng)設(shè)置多個(gè)用戶進(jìn)行管理操作,當(dāng)選擇
12、已有用戶時(shí)便可進(jìn)入其該用戶的文件管理界面,用戶可以進(jìn)行相應(yīng)的操作。主要的結(jié)構(gòu)是用戶可以建立多個(gè)文件夾,多個(gè)文件,文件夾里可以包含文件,也可以不包含文件。用戶可建立的文件類型有三種,文件夾,文本文件和可執(zhí)行文件。用戶對(duì)文件的管理主要是復(fù)制文件,粘貼文件,刪除文件,可以把文件移到回收站。用戶可以對(duì)自己的文件進(jìn)行權(quán)限的管理,可以設(shè)置自己的文件為可讀,可寫,可執(zhí)行,或只可以寫,不可以讀。當(dāng)用戶不需要某文件時(shí),可以把文件放到回收站里。也可以把文件
13、從回收站里恢復(fù)或刪除,當(dāng)用戶真的不想要這個(gè)文件了,就可以把它刪除。還有用戶瀏覽文件的過程中,可以對(duì)自己的操作進(jìn)行前進(jìn)或返回。除此之外,用戶還可以對(duì)自己的登錄設(shè)置密碼,密碼沒有經(jīng)過加密處理,因?yàn)橹皇且粋€(gè)小系統(tǒng),沒必要用到加密算法。下面主要是文件管理系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖:</p><p><b> 數(shù)據(jù)結(jié)構(gòu)說明:</b></p><p> 本設(shè)計(jì)主要設(shè)置三種數(shù)據(jù),用戶信息
14、,文件信息,回收站信息,考慮到Microsoft Access 的簡單易用性,選擇用它來做為主要的數(shù)據(jù)操作。</p><p> 數(shù)據(jù)庫由三個(gè)表組成: UserFolder(目錄)表、Userfile(文件)表、Gabage(回收站)表,其中,目錄表包括用戶表,本程序中,用戶被當(dāng)成特殊的目錄處理,其表目如下:</p><p><b> 數(shù)據(jù)項(xiàng)說明如下:</b><
15、;/p><p> UserfolderID 用戶文件ID號(hào),也是用戶號(hào)</p><p> Username 用戶文件名稱,也是用戶名稱 </p><p> Read讀權(quán)限</p><p> Write寫權(quán)限</p><p> Bexec可執(zhí)行權(quán)
16、限</p><p> Parentid父節(jié)點(diǎn)號(hào)</p><p> Createtime創(chuàng)建時(shí)間</p><p> Modifytime修改時(shí)間</p><p> PWD用戶密碼</p><p> Userfile是文件表,保存用戶的文件,其結(jié)構(gòu)如下:</p>
17、<p><b> 數(shù)據(jù)項(xiàng)說明如下:</b></p><p> ID 用戶文件ID號(hào)</p><p> name 用戶文件名稱</p><p> Read讀權(quán)限</p><p> Write寫權(quán)限</p><p&g
18、t; Bexec可執(zhí)行權(quán)限</p><p> Parentid父節(jié)點(diǎn)號(hào)</p><p> Data_length文件長度</p><p> Time_span運(yùn)行時(shí)間</p><p> Createtime創(chuàng)建時(shí)間</p><p> Modifytime修改時(shí)
19、間</p><p> Gabage 表是對(duì)回收站進(jìn)行管理的表:</p><p><b> 數(shù)據(jù)項(xiàng)說明如下:</b></p><p> ID 用戶文件ID號(hào)</p><p> name 用戶文件名稱</p><p> srcID原
20、文件ID</p><p> Parid父節(jié)點(diǎn)號(hào)</p><p> Delete_time刪除時(shí)間</p><p><b> 模塊的算法流程圖:</b></p><p> 由于本系統(tǒng)的主要目的是設(shè)計(jì)一個(gè)多用戶,多目錄的文件系統(tǒng),下面主要對(duì)涉及到文件操作的主要算法畫出它的流程圖。</p>
21、<p><b> 創(chuàng)建用戶和文件夾</b></p><p><b> 創(chuàng)建文件</b></p><p><b> 刪除文件夾和文件</b></p><p> 復(fù)制,剪切,對(duì)文件和目錄的移動(dòng)(因?yàn)楹竺嫒齻€(gè)操作都只涉及到簡單的指針修改,故只畫右邊一個(gè)圖。)</p><
22、;p><b> 設(shè)置文件權(quán)限</b></p><p> 打開文件(加執(zhí)行文件)</p><p> 回收站(移至,和恢復(fù))(還有刪除和清空,算法結(jié)構(gòu)差不多,在這里省略)</p><p><b> 登錄</b></p><p><b> 程序的運(yùn)行:</b><
23、/p><p><b> 主界面</b></p><p> 創(chuàng)建一個(gè)用戶(new user)</p><p> 重命名(newuser)</p><p> 4. 對(duì)用戶處理的快捷菜單</p><p><b> 加密</b></p><p> 打開
24、用戶,新建一個(gè)文件夾,文本文件,可執(zhí)行文件</p><p> 讀取文件夾和用戶的權(quán)限(用戶可以修改文件夾和用戶的信息)</p><p> 用戶文件的權(quán)限和信息</p><p><b> 讀寫文本文件</b></p><p><b> 讀寫執(zhí)行文件</b></p><p&g
25、t;<b> 把文件放到回收站</b></p><p><b> 從回收站里恢復(fù)</b></p><p><b> 點(diǎn)擊恢復(fù):</b></p><p> 復(fù)制,粘貼,刪除文件的運(yùn)行都很簡單,在這里就不貼圖出來了,具體的運(yùn)行過程和使用說明將在使用說明書那里作說明。</p><
26、p> 部份源程序清單:(主要的部份)</p><p><b> 對(duì)數(shù)據(jù)庫的連接:</b></p><p><b> while(1)</b></p><p> {CString strCon = "Driver=Microsoft Access Driver (*.mdb);DBQ="+s
27、trFile+";UID=admin;PSW=;Persist Security Info=False";</p><p> pWnd->m_db.OpenEx(strCon,CDatabase::noOdbcDialog|CDatabase::openExclusive);</p><p> if(!pWnd->m_db.IsOpen())</p
28、><p> {if(MessageBox("連接數(shù)據(jù)庫失敗!請(qǐng)確定數(shù)據(jù)庫文件是否存在. \n再?",NULL,MB_ICONSTOP|MB_YESNO)!=IDYES) exit(0);</p><p> CFileDialog dlg(true);</p><p> if(dlg.DoModal()!=IDOK)exit(0);</p&
29、gt;<p> strFile = dlg.GetPathName();</p><p> }else break;</p><p><b> }</b></p><p><b> 回收站的恢復(fù):</b></p><p> BOOL CMainFrame::Restore
30、As(ClipData *pData)</p><p> {int i = 0;</p><p> CString szID,szName,szType,szParID,szSrcID;</p><p> while(pData->itemid[i] !=0)</p><p> {DWORD data = pData->
31、itemid[i];</p><p> if( (data & 3) == 2)</p><p> {szID.Format("%d", data/4);</p><p> szType.Format("%d",data&3);</p><p> rs.Close();<
32、/p><p> rs.Open(RS_DEF,"select * from Gabage where ID="+szID);</p><p> rs.GetFieldValue("name",szName);</p><p> szParID = GetCurDirID();</p><p> rs
33、.GetFieldValue("srcID",szSrcID);</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select * from Userfolder where parentID="+szParID+" and Username='"+szName+"
34、'");</p><p> if(rs.GetRecordCount()>0)</p><p> {MessageBox("你不能存儲(chǔ)文件 \""+szName+"\" 在這里,已經(jīng)有一個(gè)同名文件!",NULL,MB_ICONSTOP);</p><p> i++ ;c
35、ontinue;</p><p><b> }</b></p><p> m_db.ExecuteSQL("update Userfolder set parentID="+szParID+",Modifytime='"+GetTimeStr()+"' where UserfolderID=&quo
36、t;+szSrcID);m_db.ExecuteSQL("delete from Gabage where ID="+szID);}</p><p> else{szID.Format("%d", data/4);</p><p> szType.Format("%d",data&3);</p&
37、gt;<p> rs.Close();</p><p> rs.Open(RS_DEF,"select * from Gabage where ID="+szID);</p><p> rs.GetFieldValue("name",szName);</p><p> szParID = GetCurDi
38、rID();</p><p> rs.GetFieldValue("srcID",szSrcID);</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select * from Userfolder where parentID="+szParID+" and Use
39、rname='"+szName+"'");</p><p> if(rs.GetRecordCount()>0)</p><p> {MessageBox("不能存儲(chǔ)在這里, \""+szName+"\" 已經(jīng)存在!",NULL,MB_ICONSTOP);</p>
40、;<p> i++ ;continue;</p><p> }m_db.ExecuteSQL("update Userfile set parentID="+szParID+",Modifytime='"+GetTimeStr()+"' where ID="+szSrcID);</p><p&g
41、t; m_db.ExecuteSQL("delete from Gabage where ID="+szID);</p><p><b> }i++;</b></p><p> }GetDirView()->ReloadSubDir(GetCurDirID());</p><p> return TRUE;&
42、lt;/p><p><b> }</b></p><p><b> 新建用戶和文件夾</b></p><p> void CMainFrame::OnEditNewDir()</p><p> {CString pID = GetCurDirID();</p><p>
43、 if(pID.IsEmpty())</p><p> {MessageBox("請(qǐng)先輸入一個(gè)目錄名稱!",NULL,MB_ICONWARNING);</p><p><b> return;</b></p><p> }rs.Close();</p><p> rs.Open(RS_D
44、EF,"select Write from Userfolder where UserfolderID="+pID);</p><p> CString szAccess;</p><p> rs.GetFieldValue("Write",szAccess);</p><p> if(szAccess != "
45、;1") </p><p> {MessageBox("當(dāng)前的文件不可讀!","Error!",MB_ICONSTOP);</p><p><b> return;</b></p><p><b> }</b></p><p> CStri
46、ng name =( GetDirView()->IsRootSelected()&&</p><p> !GetDirView()->IsDiskSelected()) ? "new user":"new folder";</p><p> int iCount = 2;</p><p>
47、CString str_name=name;</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select * from Userfolder where parentID="+pID+" and Username='"+str_name+"'");</p>
48、;<p> while(rs.GetRecordCount()>0)</p><p> {str_name.Format("%s(%d)",name,iCount);</p><p><b> iCount++;</b></p><p> rs.Close();</p><p
49、> rs.Open(RS_DEF,"select * from Userfolder where parentID="+pID+" and Username='"+str_name+"'");</p><p><b> }</b></p><p> name = str_name;
50、</p><p> CString nID;</p><p> CString szCt = GetTimeStr();CString szSQL = "insert into Userfolder(Username,parentID,Createtime,Modifytime) values('"+name+"',"+pID+
51、",'"+szCt+"','"+szCt+"')";</p><p> m_db.ExecuteSQL(szSQL);</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select UserfolderID from
52、 Userfolder where Username='"+name+"' and parentID="+pID);</p><p> rs.GetFieldValue("UserfolderID",nID);</p><p><b> int iImg;</b></p><p&
53、gt; if(pID == GetDirView()->GetRootID()) iImg = IMG_DISK;</p><p> else iImg = IMG_DIR1;</p><p> HTREEITEM p = GetDirView()->GetTreeCtrl().InsertItem(name,iImg,iImg,</p><p>
54、 GetDirView()->GetTreeCtrl().GetSelectedItem());</p><p> GetDirView()->GetTreeCtrl().SetItemData(p,atoi(nID));</p><p> int nItem = GetFileView()->GetListCtrl().InsertItem(</p>
55、<p> GetFileView()->GetListCtrl().GetItemCount(),name,iImg);</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select UserfolderID from Userfolder where parentID="+pID+" and
56、 Username='"+name+"'");</p><p> rs.GetFieldValue("UserfolderID",pID);</p><p> GetFileView()->GetListCtrl().SetItemData(nItem,atoi(pID)*4+2);</p><
57、p> SelectListItem(nItem);</p><p> OnEditRename();</p><p><b> }</b></p><p><b> //刪除用戶</b></p><p> void CMainFrame::OnUpdateEditDelDir(CCm
58、dUI* pCmdUI) </p><p> {DWORD data = 0;</p><p> if(GetFileView()->GetListCtrl().GetSelectedCount()==1)</p><p> {POSITION pos = GetFileView()->GetListCtrl().GetFirstSelect
59、edItemPosition();</p><p> int nItem = GetFileView()->GetListCtrl().GetNextSelectedItem(pos);</p><p> data = GetFileView()->GetListCtrl().GetItemData(nItem);</p><p> data =
60、(data & 03);</p><p><b> }</b></p><p> if(data == 2 && !GetDirView()->IsDeskTopSelected()) pCmdUI->Enable(TRUE);</p><p> else pCmdUI->Enable(FALSE
61、);</p><p><b> }</b></p><p><b> //刪除文件</b></p><p> void CMainFrame::OnUpdateEditDelete(CCmdUI* pCmdUI) </p><p> {DWORD data = 0;</p>&
62、lt;p> if(GetFileView()->GetListCtrl().GetSelectedCount()==1)</p><p> {POSITION pos = GetFileView()->GetListCtrl().GetFirstSelectedItemPosition();</p><p> int nItem = GetFileView()-&
63、gt;GetListCtrl().GetNextSelectedItem(pos);</p><p> data = GetFileView()->GetListCtrl().GetItemData(nItem);</p><p> data = data & 03;</p><p> if(data==2) data = 0;</p>
64、;<p> else data = 1;</p><p><b> }</b></p><p> if(data && !GetDirView()->IsDeskTopSelected()) pCmdUI->Enable(TRUE);</p><p> else pCmdUI->Enabl
65、e(FALSE);</p><p><b> }</b></p><p> void CMainFrame::OnEditDelete() </p><p> {CString szCurDirID = GetCurDirID();</p><p> if(szCurDirID.IsEmpty()) retur
66、n;</p><p><b> // 檢查</b></p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select Write from Userfolder where UserfolderID="+szCurDirID);</p><p> CSt
67、ring szAccess;</p><p> rs.GetFieldValue("Write",szAccess);</p><p> if(szAccess != "1") </p><p> {MessageBox("當(dāng)前的文件夾只可以讀!","Error!",MB_ICO
68、NSTOP);</p><p><b> return;</b></p><p><b> }</b></p><p> DWORD data = 0;</p><p> if(GetFileView()->GetListCtrl().GetSelectedCount()==1)<
69、;/p><p> {POSITION pos = GetFileView()->GetListCtrl().GetFirstSelectedItemPosition();</p><p> int nItem = GetFileView()->GetListCtrl().GetNextSelectedItem(pos);</p><p> data
70、= GetFileView()->GetListCtrl().GetItemData(nItem);</p><p> data = data/4;</p><p> char szID[10];</p><p> itoa(data,szID,10);</p><p> GetFileView()->GetListCtr
71、l().DeleteItem(nItem);</p><p> m_db.ExecuteSQL("delete from Userfile where ID="+CString(szID));</p><p><b> }</b></p><p><b> }</b></p><
72、;p><b> 文件等權(quán)限處理:</b></p><p> void CMainFrame::OnEditAttrib() </p><p> {int nItem;</p><p> char ch[10];</p><p> DWORD data;</p><p> CLi
73、stCtrl *plctrl = &GetFileView()->GetListCtrl();</p><p> POSITION pos = plctrl->GetFirstSelectedItemPosition();</p><p> switch(plctrl->GetSelectedCount())</p><p> {
74、case 0 : AfxMessageBox("沒有條目給選到!"); return;</p><p> case 1 : nItem = plctrl->GetNextSelectedItem(pos);</p><p> data = plctrl->GetItemData(nItem);</p><p> if( (dat
75、a & 3) == 2 ) //目錄屬性</p><p> { data = data/4;</p><p> if(CDirA().DoModal(itoa(data,ch,10)))</p><p> { ReloadFile();</p><p><b> } }</b></p&g
76、t;<p> else // 文件屬性</p><p> { data = data/4;</p><p> if(CFileA().DoModal(itoa(data,ch,10)))</p><p> { ReloadFile(); } } break;</p><p> default:
77、 if( GetDirView()->GetTreeCtrl().GetSelectedItem() ==</p><p> GetDirView()->GetTrashItem() )</p><p> {AfxMessageBox("Attribute not supported!"); }</p><p> els
78、e CItemA().DoModal(); break;</p><p><b> }}</b></p><p> 回收站的恢復(fù),和移動(dòng)</p><p> BOOL CMainFrame::MoveTrash(ClipData *pData)</p><p> {int i = 0;</p&
79、gt;<p> CString szName,szID,szParID,szType;</p><p> while(pData->itemid[i] !=0)</p><p> {DWORD data = pData->itemid[i];</p><p> if( (data & 3) == 2)</p>
80、<p> {szID.Format("%d", data/4);</p><p> szType.Format("%d",data&3);</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select * from Userfolder whe
81、re UserfolderID="+szID);</p><p> rs.GetFieldValue("Username",szName);</p><p> rs.GetFieldValue("parentID",szParID);</p><p> m_db.ExecuteSQL("insert
82、into Gabage(item_type,name,srcID,parID,delete_time) values("+ szType+",'"+szName+"',"+szID+","+szParID+",'"+GetTimeStr()+"')");</p&
83、gt;<p> GetDirView()->GetTreeCtrl().DeleteItem(</p><p> GetDirView()->GetDirItem(GetDirView()->GetFullPath(szID)));</p><p> m_db.ExecuteSQL("update Userfolder set parentI
84、D=0 where UserfolderID="+szID);}</p><p> else{szID.Format("%d", data/4);</p><p> szType.Format("%d",data&3);</p><p> rs.Close();</p>&l
85、t;p> rs.Open(RS_DEF,"select * from Userfile where ID="+szID);</p><p> rs.GetFieldValue("name",szName);</p><p> rs.GetFieldValue("parentID",szParID);</p>
86、<p> m_db.ExecuteSQL("insert into Gabage(item_type,name,srcID,parID,delete_time) values("+ szType+",'"+szName+"',"+szID+","+szParID+",'"
87、;+GetTimeStr()+"')");m_db.ExecuteSQL("update Userfile set parentID=0 where ID="+szID);</p><p><b> }i++;}</b></p><p> return TRUE;</p><p>&
88、lt;b> }</b></p><p> BOOL CMainFrame::RestoreTrash(ClipData *pData)</p><p> {int i = 0;</p><p> CString szID,szName,szType,szParID,szSrcID;</p><p> while(
89、pData->itemid[i] !=0)</p><p> {DWORD data = pData->itemid[i];</p><p> if( (data & 3) == 2)</p><p> {szID.Format("%d", data/4);</p><p> szType.
90、Format("%d",data&3);</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select * from Gabage where ID="+szID);</p><p> rs.GetFieldValue("parID",szParID
91、);</p><p> rs.GetFieldValue("srcID",szSrcID);</p><p> m_db.ExecuteSQL("update Userfolder set parentID="+szParID+",Modifytime='"+GetTimeStr()+"' where
92、 UserfolderID="+szSrcID);</p><p> m_db.ExecuteSQL("delete from Gabage where ID="+szID);</p><p> GetDirView()->ReloadSubDir(szParID);</p><p> }else{szID.Form
93、at("%d", data/4);</p><p> szType.Format("%d",data&3);</p><p> rs.Close();</p><p> rs.Open(RS_DEF,"select * from Gabage where ID="+szID);</p&g
94、t;<p> rs.GetFieldValue("parID",szParID);</p><p> rs.GetFieldValue("srcID",szSrcID);</p><p> m_db.ExecuteSQL("update Userfile set parentID="+szParID+"
95、;,Modifytime='"+GetTimeStr()+"' where ID="+szSrcID);</p><p> m_db.ExecuteSQL("delete from Gabage where ID="+szID);</p><p><b> }i++;}</b></p>
96、;<p> return TRUE;}</p><p><b> 使用說明書:</b></p><p> 下面的說明書主要是對(duì)用戶文件的操作的說明:</p><p> 用戶運(yùn)行程序,里面顯示了一些用戶,有一些是加密的,密碼都是123456,雙擊相應(yīng)的用戶可以進(jìn)行該用戶的目錄。用戶可以創(chuàng)建新的用戶,具體操作是右擊,選擇新建-
97、>新建用戶或文件夾,輸入用戶的名稱。用戶也可以右擊對(duì)用戶加密,輸入用戶的密碼兩次,然后進(jìn)入該用戶的目錄。</p><p> 在用戶目錄里,用戶可以右擊對(duì)文件進(jìn)行操作,里面有選擇,反選,新建,刷新,新建里有三個(gè)操作,新建文件夾,新建文本文件,新建可執(zhí)行文件。</p><p> 選中相應(yīng)的文件,用戶也可以在文檔的菜單欄里對(duì)文件進(jìn)行操作.使用方法跟2里面的一樣。</p>
98、<p> 新建文件夾或文件后,右擊,用戶可以看到的操作有:打開,刷新,復(fù)制,剪切,重命名,新建,刪除,移到回收站,屬性,選擇和反選。用戶可以選擇相應(yīng)的操作。</p><p> 在用戶的菜單欄里,查看一欄,用戶可以進(jìn)行的操作有:狀態(tài)欄,列表,圖標(biāo),詳細(xì)信息,樹形目錄,定位,選擇和反選。其中,定位,有三種操作,向上,向前,向后,均對(duì)用戶的多級(jí)目錄進(jìn)行前后的操作。</p><p>
99、 其中,點(diǎn)擊屬性操作時(shí),用戶可以對(duì)文件,文件夾或用戶本身進(jìn)行權(quán)限的設(shè)置,文件信息的查看,重命名文件。單擊OK 可以保存用戶對(duì)文件,文件夾或用戶本身信息的修改。</p><p><b> 體會(huì),建議</b></p><p> 通過本次課程設(shè)計(jì),我深深體會(huì)到OS里,文件目錄設(shè)置的精妙和講究。在設(shè)計(jì)的過程中,遇到了很多的問題。其中涉及的主要操作是對(duì)文件的各個(gè)屬性進(jìn)行的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)--windows資源管理器與任務(wù)管理器
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告---windows系統(tǒng)資源管理器與任務(wù)管理器
- 操作系統(tǒng)課程設(shè)計(jì)---windows系統(tǒng)資源管理器與任務(wù)管理器
- 仿資源管理器的java課程設(shè)計(jì)
- 《資源管理器──文件夾的管理》的總體教學(xué)設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告----文件管理系統(tǒng)
- 基于android平臺(tái)的資源管理器設(shè)計(jì).pdf
- 基于android平臺(tái)資源管理器
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告-linux頁面換入換出分析、進(jìn)程管理器
- 操作系統(tǒng)原理課程設(shè)計(jì)---進(jìn)程管理器的模擬實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)--文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)-文件管理實(shí)驗(yàn)報(bào)告
- 操作系統(tǒng)課程設(shè)計(jì)---文件管理系統(tǒng)設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)--資源管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)---磁盤文件操作
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 桌面Linux資源管理器研究和改進(jìn).pdf
- 《操作系統(tǒng)》課程設(shè)計(jì)-- 模擬文件管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論