資源簡(jiǎn)介
一個(gè)用Java實(shí)現(xiàn)的一個(gè)虛擬文件系統(tǒng),支持多用戶使用,模擬了數(shù)據(jù)分塊,實(shí)現(xiàn)了一些基本的文件目錄操作,如創(chuàng)建目錄,目錄跳轉(zhuǎn),目錄的重命名,復(fù)制拷貝,刪除,以及文件的創(chuàng)建,編輯,重命名和刪除,查看目錄和文件的大小等。內(nèi)含技術(shù)說(shuō)明和使用說(shuō)明及較多的注釋,可以很清楚地了解其實(shí)現(xiàn)過(guò)程
代碼片段和文件信息
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.util.ArrayList;
import?java.util.Stack;
import?util.AllUser;
import?util.MyDir;
import?util.MyDisk;
import?util.MyDiskBlock;
import?util.MyFile;
public?class?MainTest?{
public?static?void?main(String[]?args)?throws?IOException?{
System.out.println(“歡迎光臨周亮俊文件系統(tǒng)請(qǐng)輸入您的用戶名“);
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
String?username;
while?((username?=?br.readLine().trim()).equals(““))
System.out.println(“用戶名輸入有誤,請(qǐng)重新輸入“);
MyDir?nowdir?=?new?MyDir(username);
System.out.println(“歡迎光臨“?+?username
+?“???您可以創(chuàng)建新的目錄和文件,如需幫助,輸入help查看幫助指令“);
MyDir?dirsave?=?null;
MyFile?filesave?=?null;
while?(true)?{
System.out.print(username+“/“);
Stack?brid=new?Stack();
MyDir?k?=?new?MyDir();
k?=?nowdir;
while?(nowdir.getFatherDir()?!=?null)?//?循環(huán)更新父目錄磁盤塊(添加)和大小,直至根目錄
{
brid.push(nowdir.getName()+“/“);
nowdir?=?nowdir.getFatherDir();
}
nowdir?=?k;
while(!brid.empty())
???????????System.out.print(brid.pop());
String?s?=?br.readLine().trim();
if?(s.equals(“l(fā)s“))?//?--->目錄顯示1
nowdir.ls();
else?if?(s.startsWith(“cd“)?&&?!s.equals(“cd?..“))?{?//?--->跳轉(zhuǎn)1
String?real?=?s.substring(3?s.length());
MyDir?a?=?nowdir.cd(real);
if?(a?!=?null)?{
MyDir?b?=?nowdir;
nowdir?=?a;
nowdir.setFatherDir(b);
}?else
System.out.println(“您輸入的目錄名有誤,請(qǐng)重新輸入“);
}?else?if?(s.equals(“cd?..“))?{?//?--->返回1
if?(nowdir.cdReturn()?!=?null)
nowdir?=?nowdir.cdReturn();
else
System.out.println(“已經(jīng)退到根目錄“);
}?else?if?(s.startsWith(“vim“)?&&?s.length()?>?4)?{?//?--->創(chuàng)建文件1
String?real?=?s.substring(4?s.length());
nowdir.addFile(new?MyFile(real?0?0));
}?else?if?(s.startsWith(“rmfile“)?&&?s.length()?>?7)?{?//?--->刪除文件,1
String?real?=?s.substring(7?s.length());
MyFile?a?=?nowdir.getFile(real);
if?(a?!=?null)?{
ArrayList?blocklist?=?a.getBlocklist();
ArrayList?thenw?=?new?ArrayList();
for?(MyDiskBlock?one?:?blocklist)?{
MyDisk.getInstance().deleteUsed(one.getId());
thenw.add(one.getId());
}
nowdir.deleteFile(real);
MyDir?save2?=?new?MyDir();
save2?=?nowdir;
while?(nowdir.getFatherDir()?!=?null)?//?循環(huán)更新父目錄磁盤塊(刪除)和大小,直至根目錄
{
nowdir.removeold(thenw);
nowdir.updateSize();
nowdir?=?nowdir.getFatherDir();
}
nowdir?=?save2;
System.out.println(“刪除成功“);
}?else
System.out.println(“對(duì)不起,該文件不存在“);
}?else?if?(s.startsWith(“rnmfile“)?&&?s.length()?>?8)?{?//?--->文件重命名
String?real?=?s.substring(8?s.length());
MyFile?a?=?nowdir.getFile(real);
if?(a?!=?null)?{
System.out.println(“請(qǐng)輸入新的文件名“);
String?newname?=?br.readLine().trim();
if?(nowdir.canPast
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-01-10?00:17??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\
?????目錄???????????0??2013-01-10?00:17??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\
?????文件?????????301??2013-01-03?17:41??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\.classpath
?????文件?????????383??2013-01-03?17:41??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\.project
?????目錄???????????0??2013-01-10?00:17??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\.settings\
?????文件?????????598??2013-01-03?17:41??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2013-01-10?00:17??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\
?????文件???????14775??2013-01-09?16:22??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\MainTest.class
?????目錄???????????0??2013-01-10?00:17??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\util\
?????文件????????1862??2013-01-09?15:44??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\util\AllUser.class
?????文件????????6628??2013-01-08?16:57??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\util\MyDir.class
?????文件????????2921??2013-01-05?18:47??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\util\MyDisk.class
?????文件????????1271??2013-01-05?19:39??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\util\MyDiskBlock.class
?????文件????????2078??2013-01-05?18:44??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\bin\util\MyFile.class
?????目錄???????????0??2013-01-10?00:17??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\
?????文件???????18383??2013-01-09?16:22??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\MainTest.java
?????目錄???????????0??2013-01-10?00:17??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\util\
?????文件?????????910??2013-01-09?15:44??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\util\AllUser.java
?????文件????????5291??2013-01-08?16:57??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\util\MyDir.java
?????文件????????1785??2013-01-05?18:47??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\util\MyDisk.java
?????文件?????????874??2013-01-05?19:39??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\util\MyDiskBlock.java
?????文件????????1405??2013-01-05?18:44??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\CmdTest\src\util\MyFile.java
?????文件?????1092667??2013-01-10?00:05??軟工1007?周亮俊?201026810130?操作系統(tǒng)大實(shí)驗(yàn)\周亮俊_操作系統(tǒng)大型實(shí)驗(yàn).pdf
評(píng)論
共有 條評(píng)論