• 大小: 938KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Java
  • 标签: Java  

资源简介

一个用Java实现的一个虚拟文件系统,支持多用户使用,模拟了数据分块,实现了一些基本的文件目录操作,如创建目录,目录跳转,目录的重命名,复制拷贝,删除,以及文件的创建,编辑,重命名和删除,查看目录和文件的大小等。内含技术说明和使用说明及较多的注释,可以很清楚地了解其实现过程

资源截图

代码片段和文件信息

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(“欢迎光临周亮俊文件系统请输入您的用户名“);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String username;
while ((username = br.readLine().trim()).equals(““))
System.out.println(“用户名输入有误,请重新输入“);
MyDir nowdir = new MyDir(username);
System.out.println(“欢迎光临“ + username
+ “   您可以创建新的目录和文件,如需帮助,输入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) // 循环更新父目录磁盘块(添加)和大小,直至根目录
{

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(“ls“)) // --->目录显示1
nowdir.ls();
else if (s.startsWith(“cd“) && !s.equals(“cd ..“)) { // --->跳转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(“您输入的目录名有误,请重新输入“);

} else if (s.equals(“cd ..“)) { // --->返回1
if (nowdir.cdReturn() != null)
nowdir = nowdir.cdReturn();
else
System.out.println(“已经退到根目录“);

} else if (s.startsWith(“vim“) && s.length() > 4) { // --->创建文件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) // 循环更新父目录磁盘块(删除)和大小,直至根目录
{

nowdir.removeold(thenw);
nowdir.updateSize();
nowdir = nowdir.getFatherDir();
}
nowdir = save2;

System.out.println(“删除成功“);
} else
System.out.println(“对不起,该文件不存在“);
} 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(“请输入新的文件名“);
String newname = br.readLine().trim();
if (nowdir.canPast

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-01-10 00:17  软工1007 周亮俊 201026810130 操作系统大实验\
     目录           0  2013-01-10 00:17  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\
     文件         301  2013-01-03 17:41  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.classpath
     文件         383  2013-01-03 17:41  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.project
     目录           0  2013-01-10 00:17  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.settings\
     文件         598  2013-01-03 17:41  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\.settings\org.eclipse.jdt.core.prefs
     目录           0  2013-01-10 00:17  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\
     文件       14775  2013-01-09 16:22  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\MainTest.class
     目录           0  2013-01-10 00:17  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\
     文件        1862  2013-01-09 15:44  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\AllUser.class
     文件        6628  2013-01-08 16:57  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyDir.class
     文件        2921  2013-01-05 18:47  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyDisk.class
     文件        1271  2013-01-05 19:39  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyDiskBlock.class
     文件        2078  2013-01-05 18:44  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\bin\util\MyFile.class
     目录           0  2013-01-10 00:17  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\
     文件       18383  2013-01-09 16:22  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\MainTest.java
     目录           0  2013-01-10 00:17  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\
     文件         910  2013-01-09 15:44  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\AllUser.java
     文件        5291  2013-01-08 16:57  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyDir.java
     文件        1785  2013-01-05 18:47  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyDisk.java
     文件         874  2013-01-05 19:39  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyDiskBlock.java
     文件        1405  2013-01-05 18:44  软工1007 周亮俊 201026810130 操作系统大实验\CmdTest\src\util\MyFile.java
     文件     1092667  2013-01-10 00:05  软工1007 周亮俊 201026810130 操作系统大实验\周亮俊_操作系统大型实验.pdf

评论

共有 条评论