版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 操作系統(tǒng)課程實(shí)驗(yàn)報告</p><p> 2013~2014年度 第1學(xué)期</p><p><b> 院系:</b></p><p><b> 學(xué)號: </b></p><p><b> 姓名: </b></p>&
2、lt;p> 任課教師: 成績評定:</p><p> 實(shí)驗(yàn)一題目:文件管理</p><p> 完成日期:年 月 日</p><p><b> 實(shí)驗(yàn)?zāi)康?lt;/b></p><p> 了解文件管理的功能和任務(wù),理解文件系統(tǒng)組成和特點(diǎn),熟悉文件系統(tǒng)的訪問和操作。實(shí)驗(yàn)要求用高級語言編寫和調(diào)試一
3、個簡單的模擬文件管理程序。加深理解有關(guān)盤塊的分配與回收、目錄管理等的具體實(shí)施策略。 </p><p><b> 2.、實(shí)驗(yàn)內(nèi)容</b></p><p> 模擬一個資源管理器進(jìn)行文件操作,包括建立和刪除目錄、建立和刪除文件等基本文件操作。建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu)(如:位示圖等),模擬盤塊管理。可以參照圖6界面進(jìn)行設(shè)計。</p><p><b&
4、gt; 算法設(shè)計</b></p><p> 、定義主面板MainFrame,布局好各個控件,并初始化</p><p><b> /*</b></p><p> * 往node節(jié)點(diǎn)下添加一個子節(jié)點(diǎn)obj;</p><p><b> */</b></p><p&
5、gt; public void addChild(Object obj, DefaultMutableTreeNode node) {</p><p> if (obj != null && node != null) {</p><p> DefaultMutableTreeNode temp = new DefaultMutableTreeNode(obj);&l
6、t;/p><p> if (node.getAllowsChildren())</p><p> node.add(temp);</p><p> if (!((String) obj).equals("A:\\") && ((String) obj).length() <= 3)// 防止讀取A軟驅(qū),會出現(xiàn)異常;用于初始
7、用的;</p><p> addChildren(cmd.listAll((String) obj), temp);</p><p><b> }</b></p><p><b> }</b></p><p><b> /*</b></p><p&g
8、t; * 在node節(jié)點(diǎn)下添加數(shù)組children;</p><p><b> */</b></p><p> public void addChildren(String[] children, DefaultMutableTreeNode node) {</p><p> if (children != null &&
9、; node != null) {</p><p> for (int i = 0; i < children.length; i++) {</p><p> addChild(children[i], node);</p><p><b> }</b></p><p><b> }</b&
10、gt;</p><p><b> }</b></p><p><b> /*</b></p><p> * 對樹的節(jié)點(diǎn)進(jìn)行預(yù)提取;</p><p><b> */</b></p><p> public void addPrefetchChil
11、dren(String path, DefaultMutableTreeNode node) {</p><p> addChildren(cmd.listDirectory(path), node);</p><p><b> }</b></p><p><b> /*</b></p><p&g
12、t; * 對路徑路徑進(jìn)行連接;(已經(jīng)獲得了所有的整個路徑,需要量轉(zhuǎn)化)</p><p><b> */</b></p><p> public String toFilePath(String str) {</p><p> // 先去掉頭尾的[];</p><p> String pa = str.subst
13、ring(1, str.length() - 1);</p><p> String[] temp = pa.split(", ");</p><p> String path = "";</p><p> for (int i = 1; i < temp.length; i++) {</p><
14、;p> if (!path.endsWith("\\") && !path.equals(""))// 不為空是為去根節(jié)點(diǎn);</p><p> path += "\\";</p><p> path += temp[i];</p><p><b> }</b&g
15、t;</p><p> return path;</p><p><b> }</b></p><p> public String toPFilePath(String str) {</p><p> // 先去掉頭尾的[];</p><p> String pa = str.subs
16、tring(1, str.length() - 1);</p><p> String[] temp = pa.split(", ");</p><p> String path = "";</p><p> for (int i = 1; i < temp.length - 1; i++) {</p>
17、<p> if (!path.endsWith("\\") && !path.equals(""))// 不為空是為去根節(jié)點(diǎn);</p><p> path += "\\";</p><p> path += temp[i];</p><p><b> }<
18、;/b></p><p> return path;</p><p><b> }</b></p><p> public class ExpandListener implements TreeWillExpandListener {</p><p><b> /*</b></
19、p><p> * 樹展開及收縮監(jiān)聽;</p><p><b> */</b></p><p> private MainFrame mainFrame = null;</p><p> public ExpandListener(MainFrame mainFrame) {</p><p>
20、 this.mainFrame = mainFrame;</p><p><b> }</b></p><p> public void treeWillExpand(TreeExpansionEvent event) {</p><p> // 對節(jié)點(diǎn)的路徑進(jìn)行轉(zhuǎn)化</p><p> String path =
21、 toFilePath(event.getPath().toString());</p><p> TreePath treePath = event.getPath();</p><p> DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath</p><p> .getLastPath
22、Component();</p><p> // System.out.println("所展開節(jié)點(diǎn)的路徑:" + path);</p><p> // System.out.println(treePath);</p><p> if (node.getDepth() < 2) {</p><p> Enu
23、meration children = node.children();</p><p> String filePath = "";</p><p> while (children.hasMoreElements()) {</p><p> DefaultMutableTreeNode temp = (DefaultMutableTre
24、eNode) children</p><p> .nextElement();</p><p> filePath = "";</p><p> filePath = path;</p><p> if (!filePath.endsWith("\\"))</p><p&g
25、t; filePath += "\\";</p><p> filePath += temp.toString();</p><p> // System.out.println("temp=" +filePath);</p><p> mainFrame.addPrefetchChildren(filePath, t
26、emp);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 、添加功能“添加文件(夾)addframe()”、“修改文件(夾)mvframe()”</p><p>
27、; public void addframe() {</p><p> JFrame addFrame = new JFrame();</p><p> JLabel jlbl = new JLabel("請輸入要添加的文件(夾)名:");</p><p> addrs = new JLabel("");</p&
28、gt;<p> addrs.setBounds(180, 10, 100, 25);</p><p> jlbl.setBounds(10, 10, 170, 25);</p><p> addfile = new JTextField();</p><p> addfile.setBounds(10, 40, 260, 25);</p&
29、gt;<p> btnaddf = new JButton("添加文件");</p><p> btnaddd = new JButton("添加文件夾");</p><p> btnaddf.setBounds(20, 80, 100, 25);</p><p> btnaddd.setBounds(1
30、60, 80, 100, 25);</p><p> btnaddf.addActionListener(this);</p><p> btnaddd.addActionListener(this);</p><p> addFrame.add(jlbl);</p><p> addFrame.add(addrs);</p&g
31、t;<p> addFrame.add(addfile);</p><p> addFrame.add(btnaddf);</p><p> addFrame.add(btnaddd);</p><p> addFrame.setBounds(400, 350, 300, 150);</p><p> addFrame
32、.setTitle("添加文件(夾)");</p><p> addFrame.setLayout(null);</p><p> addFrame.setVisible(true);</p><p><b> }</b></p><p> public void mvframe() {<
33、;/p><p> JFrame mvFrame = new JFrame();</p><p> JLabel jlbl = new JLabel("請輸入修改后的文件名:");</p><p> mvrs = new JLabel("");</p><p> mvrs.setBounds(160,
34、 10, 140, 25);</p><p> jlbl.setBounds(10, 10, 170, 25);</p><p> mvfile = new JTextField();</p><p> mvfile.setBounds(10, 40, 260, 25);</p><p> btnmvf = new JButton(&
35、quot;修改文件名");</p><p> btnmvd = new JButton(" 修改文件夾名");</p><p> btnmvf.setBounds(10, 80, 120, 25);</p><p> btnmvd.setBounds(150, 80, 120, 25);</p><p>
36、 btnmvf.addActionListener(this);</p><p> btnmvd.addActionListener(this);</p><p> mvFrame.add(jlbl);</p><p> mvFrame.add(mvrs);</p><p> mvFrame.add(mvfile);</p>
37、;<p> mvFrame.add(btnmvf);</p><p> mvFrame.add(btnmvd);</p><p> mvFrame.setBounds(400, 350, 300, 150);</p><p> mvFrame.setTitle("修改文件(夾)名");</p><p>
38、; mvFrame.setLayout(null);</p><p> mvFrame.setVisible(true);</p><p><b> }</b></p><p><b> }</b></p><p><b> 顯示文件</b></p>&
39、lt;p> * 顯示系統(tǒng)中的所有盤符;</p><p> public String[] ListDisks() {</p><p> File roots[] = File.listRoots();// 根盤符;</p><p> String disks[] = new String[roots.length];</p><p&
40、gt; for (int i = 0; i < roots.length; i++) {</p><p> disks[i] = roots[i].toString();</p><p><b> }</b></p><p> return disks;</p><p><b> }</b
41、></p><p> * 獲得路徑path下的文件;</p><p> public String[] listAll(String path) {</p><p><b> try {</b></p><p> File f = new File(path);</p><p>
42、String[] fileName;</p><p> String tmp = null;</p><p> mainFrame.fileshow.setText(null);</p><p> mainFrame.filestyle.setText(null);</p><p> if (f.isDirectory()) {<
43、;/p><p> fileName = f.list();</p><p> // System.out.println("共有" + fileName.length + "個文件");</p><p> for (int i = 0; i < fileName.length; i++) {</p>&l
44、t;p> mainFrame.fileshow.append(fileName[i] + '\n');</p><p> tmp = path + '\\' + fileName[i];</p><p> // System.out.println(tmp);</p><p> if (listDirectory(tmp
45、) != null) {</p><p> mainFrame.filestyle.append("文件夾\n");</p><p><b> } else {</b></p><p> mainFrame.filestyle.append("文件\n");</p><p>
46、<b> }</b></p><p><b> }</b></p><p> return fileName;</p><p> } else if (f.isFile()) {</p><p> System.out.println("這是一個文件");</p&
47、gt;<p> return null;</p><p><b> } else {</b></p><p> // System.out.println(path);</p><p> return null;</p><p><b> }</b></p>&
48、lt;p> } catch (Exception e) {</p><p> return null;</p><p><b> }</b></p><p><b> }</b></p><p> public String[] listDirectory(String path)
49、{</p><p> File f = new File(path);</p><p> String[] fileName;</p><p> if (f.isDirectory()) {</p><p> fileName = f.list();</p><p> return fileName;<
50、/p><p><b> } else {</b></p><p> // System.out.println(path + "是文件");</p><p> return null;</p><p><b> }</b></p><p><b&
51、gt; }</b></p><p> * 進(jìn)行md操作;md <目錄名> 功能: 創(chuàng)建新目錄</p><p> public void md(String directory) {</p><p> if (!mainFrame.currentPath.equals("")) {</p><p&
52、gt; String temp = mainFrame.currentPath + "\\" + directory;</p><p> File newFile = new File(temp);</p><p> if (!newFile.exists()) {</p><p><b> try {</b><
53、;/p><p> if (newFile.isDirectory() == false) {</p><p> newFile.mkdirs();</p><p> System.out.println("文件夾創(chuàng)建成功!");</p><p><b> } else {</b></p>
54、;<p> System.out.println("文件夾創(chuàng)建出錯!");</p><p><b> }</b></p><p> } catch (Exception e) {</p><p> System.out.println("出錯信息:" + e.getMessage()
55、);</p><p><b> }</b></p><p><b> } else {</b></p><p> System.out.println("文件夾已經(jīng)存在");</p><p><b> }</b></p><p&g
56、t;<b> }</b></p><p><b> }</b></p><p> * 進(jìn)行rd操作;rd <目錄名> 功能: 刪除目錄;</p><p> public void del() {</p><p> String temp = mainFrame.currentP
57、ath;</p><p> File file = new File(temp);</p><p> if (file.exists()) {</p><p> if (file.delete()) {</p><p> mainFrame.fileshow.setText("文件(夾)刪除成功!");</p
58、><p><b> } else {</b></p><p> mainFrame.fileshow.setText("文件(夾)刪除操作出錯!");</p><p><b> }</b></p><p><b> } else {</b></p&
59、gt;<p> mainFrame.fileshow.setText("文件(夾)不存在");</p><p><b> }</b></p><p><b> }</b></p><p><b> /*</b></p><p> *
60、進(jìn)行edit操作:edit <文件名> 功能: 新建文件</p><p><b> */</b></p><p> public void edit(String file) {</p><p> if (!mainFrame.currentPath.equals("")) {</p><
61、;p> String temp = mainFrame.currentPath + "\\" + file;</p><p> File newFile = new File(temp);</p><p> if (newFile.exists()) {</p><p> mainFrame.addrs.setText("
62、文件已經(jīng)存在!");</p><p> System.out.println("文件已經(jīng)存在!");</p><p><b> } else {</b></p><p><b> try {</b></p><p> newFile.createNewFile(
63、);</p><p> mainFrame.addrs.setText("文件創(chuàng)建成功!");</p><p> System.out.println("文件創(chuàng)建成功!");</p><p> } catch (Exception e) {</p><p> System.out.println
64、("文件創(chuàng)建失敗:" + e.getMessage());</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
65、;<p> public void mvf(String file){</p><p> if (!mainFrame.PPath.equals("")) {</p><p> String temp = mainFrame.PPath + "\\" + file;</p><p> File newFi
66、le = new File(mainFrame.currentPath);</p><p> if (newFile.exists()) {</p><p> if(newFile.renameTo(new File(temp))==true){</p><p> mainFrame.mvrs.setText("修改文件名成功!");<
67、;/p><p><b> }else{</b></p><p> mainFrame.mvrs.setText("存在同名文件!");</p><p><b> }</b></p><p><b> }</b></p><p>&
68、lt;b> }</b></p><p><b> }</b></p><p> public void mvd(String dir){</p><p> if (!mainFrame.PPath.equals("")) {</p><p> String temp = m
69、ainFrame.PPath + "\\" + dir;</p><p> File newFile = new File(mainFrame.currentPath);</p><p> if (newFile.exists()) {</p><p> if(newFile.renameTo(new File(temp))==true){
70、</p><p> mainFrame.mvrs.setText("修改文件夾名成功!");</p><p><b> }else{</b></p><p> mainFrame.mvrs.setText("存在同名文件夾!");</p><p><b> }&l
71、t;/b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 運(yùn)行與測試<
72、;/b></p><p><b> 運(yùn)行時,彈出主界面</b></p><p><b> 雙擊文件盤C</b></p><p> 在E盤路徑添加文件夾操作系統(tǒng),再添加文件操作系統(tǒng)</p><p> 如果文件已存在會顯示</p><p><b> 可以
73、更改文件名稱</b></p><p> 刪除文件,不過有個BUG,要文件一層層刪,才可以刪除。</p><p><b> 可以顯示目錄路徑</b></p><p><b> 總結(jié)與心得</b></p><p> 我們每天都在用文件系統(tǒng),已經(jīng)習(xí)慣了有文件路徑尋找的方便,每次找文件時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計實(shí)驗(yàn)報告
- 操作系統(tǒng)課程設(shè)計實(shí)驗(yàn)報告
- 操作系統(tǒng)課程設(shè)計報告----文件管理系統(tǒng)
- 操作系統(tǒng)課程實(shí)驗(yàn)報告
- 操作系統(tǒng)課程設(shè)計--文件管理系統(tǒng)
- 讀者與寫者-操作系統(tǒng)課程設(shè)計實(shí)驗(yàn)報告
- 操作系統(tǒng)課程設(shè)計實(shí)驗(yàn)報告---io系統(tǒng)調(diào)用開銷比較
- 操作系統(tǒng)課程設(shè)計---文件管理系統(tǒng)設(shè)計
- 操作系統(tǒng)課程設(shè)計實(shí)驗(yàn)報告--內(nèi)存的連續(xù)分配算法
- 操作系統(tǒng)課程設(shè)計---磁盤文件操作
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng)
- 《操作系統(tǒng)》課程設(shè)計-- 模擬文件管理系統(tǒng)
- 《操作系統(tǒng)》課程設(shè)計--模擬文件管理系統(tǒng)
- 操作系統(tǒng)課程設(shè)計——操作系統(tǒng)課程設(shè)計模擬操作系統(tǒng)
- 操作系統(tǒng)課程設(shè)計報告--多級文件系統(tǒng).doc
- 操作系統(tǒng)課程設(shè)計---操作系統(tǒng)之文件管理部分的設(shè)計與實(shí)現(xiàn)
- 操作系統(tǒng)實(shí)驗(yàn)報告 (5)
- 操作系統(tǒng)實(shí)驗(yàn)報告模板
評論
0/150
提交評論