操作系统课程设计-文件管理实验报告
操作系统文件管理实验报告

操作系统文件管理实验报告操作系统文件管理实验报告一、实验目的操作系统是计算机系统中的核心软件之一,负责管理计算机硬件资源和提供用户与计算机硬件之间的接口。
文件管理是操作系统的重要功能之一,它涉及到文件的创建、读取、写入、删除等操作。
本次实验旨在通过编写简单的文件管理程序,加深对操作系统文件管理机制的理解。
二、实验环境本次实验使用C语言编写,运行在Linux操作系统上。
实验过程中使用了gcc 编译器和Linux系统提供的文件管理函数。
三、实验内容1. 文件的创建在操作系统中,文件是存储在存储介质上的数据集合。
文件的创建是指在存储介质上分配一块空间,并为其分配一个唯一的文件名。
在本次实验中,我们使用了Linux系统提供的open函数来创建文件。
open函数接受两个参数,第一个参数是文件名,第二个参数是文件的打开模式。
通过调用open函数,我们可以在指定的路径下创建一个文件。
2. 文件的读取和写入文件的读取和写入是文件管理的核心操作。
在本次实验中,我们使用了Linux 系统提供的read和write函数来实现文件的读取和写入。
read函数接受三个参数,第一个参数是文件描述符,第二个参数是存储读取数据的缓冲区,第三个参数是要读取的数据的长度。
write函数也接受三个参数,第一个参数是文件描述符,第二个参数是要写入的数据的缓冲区,第三个参数是要写入的数据的长度。
通过调用read和write函数,我们可以实现对文件的读取和写入操作。
3. 文件的删除文件的删除是指在存储介质上释放文件占用的空间,并删除文件的相关信息。
在本次实验中,我们使用了Linux系统提供的unlink函数来删除文件。
unlink函数接受一个参数,即要删除的文件名。
通过调用unlink函数,我们可以删除指定的文件。
四、实验步骤1. 创建文件首先,我们使用open函数创建一个文件。
在调用open函数时,需要指定文件的路径和文件的打开模式。
文件的路径可以是绝对路径或相对路径,文件的打开模式可以是只读、只写、读写等。
操作系统文件管理实验报告

竭诚为您提供优质文档/双击可除操作系统文件管理实验报告篇一:操作系统实验报告文件管理昆明理工大学信息工程与自动化学院学生实验报告(201—201学年第二学期)课程名称:操作系统开课实验室:年月日一、实验目的用c或c++语言编写和调试一个简单的文件系统,模拟文件管理的基本功能。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
二、实验原理及基本技术路线图(方框原理图)用c模拟实现文件系统的管理;要求设计一个多级目录结构的文件系统,能正确描述文件控制块,采用合理的外存分配方式,能实现基本的目录及文件的操作,包括创建、删除、重命名、复制、移动等功能,并对文件有一定的存取权限控制。
功能设计:helpdirexitcreate[文件名]cdir[目录名]read[文件名]close[文件名]edit[文件名]cd[目录名]attr[文件名]del[文件名]rename[文件名]显示命令帮助显示当前目录下的文件和文件夹退出系统创建文本文件创建文件夹读取一个文件最多可同时读取五个关闭一个文件编辑一个文件进子目录或者上级目录显示该文件的属性删除文件重命名编辑功能流程图删除文件流程图创建文件流程图核心算法:boolFormat(void);//格式化boolinstall(void);//装载虚拟硬盘的数据voidlogin(void);/用户登陆voidshowmenu(void);//显示功能菜单boolonAction(void);//用户选择功能并执行voidcreateFile(stringstr);//创建文件boolread(stringstr);//读取文件voideditFile(stringstr);//编辑文件voidDelete(stringstr);//删除一个文件数据结构:始地址/*inode结构体*/structinode{unsignedshortdi_tag;/*inode标识*/ /*关联文件数,当为0时表示删除文件,如一个目录至少包含两个文件:"."和".."*/constunsignedintAccounT_num=10;//用户数量/*---------常变量------*/constunsignedintbLocK_sIZe=512;//块长constunsignedintDATA_bLocK_num=512;//数据块数量constunsignedintDInoDe_sTART=4*bLocK_sIZe;//inode起始位置constunsignedintDInoDe_sIZe=512;constunsignedintDIn oDe_num=32;//inode大小//inode数量constunsignedintDATAsTART=(2+DInoDe_num)*bLocK_sIZe ;//数据区的开unsignedshortdi_number;unsignedshortdi_mode;/*存取模式:0为目录,1为文件*/unsignedshortdi_userID;/*当前inode所属用户0为根目录ID,一次下去是管理员目录、用户目录*/unsignedshortdi_access;/*访问权限0为不允许普通用户访问(公共目录),1为允许普通用户访问*/};unsignedshortdi_size;/*文件大小,目录没有大小,值为0*/unsignedshortdi_ctime;/*创建时间*/unsignedshortdi_mtime;/*最后一次修改时间*/unsignedshortdi_block[DATA_bLocK_num];/*数据块块地址编号*//**超级块***/structsuper_block{};/**账户信息**/structuser{};/**文件/目录结构**/structdirectory{unsignedshorts_inodes_count;/*文件系统中inode的总数*/unsignedshorts_blocks_count;/*数据块总数*/unsignedshorts_r_blocks_count;/*保留块总数*/unsignedshorts_free_blocks_count;//空闲块总数unsignedshorts_free_inodes_count;/*空闲的inode总数*/unsignedshorts_log_block_size;/*block的大小*/unsignedshortuser_id;//用户IDunsignedshortuser_access;//权限stringusername;stringpassword;//用户名//密码篇二:操作系统课程设计-文件管理实验报告操作系统课程实验报告20XX~20XX年度第1学期院系:学号:姓名:任课教师:成绩评定:实验一题目:文件管理完成日期:年月日1、实验目的了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。
操作系统文件管理实验报告

操作系统文件管理实验报告电大教师评语教师签字日期成绩学生姓名学号实验名称操作系统文件管理实验实验报告一、实验目的1、加深对文件、目录、文件系统等概念的理角2、掌握 Llnu_ 文件系统的目录结构3、掌握有关 Llnu_ 文件系统操作的常用命令4、了解有关文件案例性方面的知识二、实验要求:1、正确使用文件管理命令,能熟练地对文件进行浏览、拷贝、移动和删除。
2、能熟练地确定和更改工作目录,查看内容和文件属性,创建和删除目录。
3、正确地理解文件的权限,并能进行相应更改。
4、理解文件的类型及其表示形式。
5、理解文件名的表示形式,在模式匹配中能正确使用通配符。
三、实验步骤( 一) 浏览文件系统 1、运行 pwd 命令。
确定当前的工作目录。
2、文件列表。
使用 ls 命令显示当前工作目录的内容。
使用 ls-l 命令显示文件列表,对照屏幕上的显示信息,理解各字段的含义。
使用 ls-ai 命令显示文件列表,观察显示的信息。
注意列出的前两项,它们分别表示当前目录和父目录。
看一下,是否还有其他隐藏的文件? 运行不带-a 选项的 ls 命令。
注意,文件的 I 节点号不再出现。
运行不带-i 选项的 ls 命令,注意,怎么不再显示隐藏文件了。
3、目录操作。
使用 mkdir 命令建立一个子目录。
执行带 ls-d 命令,观察有关子目录的信息。
执行 cd/命令,将工作目录改到根目录(/)上。
使用绝对路径和相对路径两种方式,并执行 pwd 命令确认当前工作目录。
执行 ls/命令列出根目录的内容,再分别列出各子目录的内容。
体会各子目录的作用以及访问权限。
执行 ls-l /dev 命令列出/dev 的内容,注意各行第一个字符 b 和c 的含义以及规定的访问权限。
执行不带参数的命令 cd,然后用 pwd 命令确认当前的工作目录是什么。
执行命令 cd../...工作目录移到什么地方了? ( 二) 查看文件执行 cd 命令,将工作目录改到主目录上。
文件管理实验报告

文件管理实验报告一、实验目的文件管理是操作系统的重要组成部分,本次实验的目的在于深入理解文件管理的基本概念和原理,掌握文件的存储、组织、检索和访问等操作,熟悉常见的文件系统结构和功能,提高对文件管理系统的实际操作能力和问题解决能力。
二、实验环境1、操作系统:Windows 102、开发工具:Microsoft Visual Studio 2019三、实验内容1、文件的创建、删除和重命名使用 C++或 Python 编程语言,通过系统调用或相关库函数实现文件的创建、删除和重命名操作。
观察文件在操作系统中的实际表现,如文件的出现和消失,文件名的更改等。
2、文件的读写操作实现对文本文件和二进制文件的读写操作,包括读取文件的全部内容、按行读取文件、向文件写入数据等。
分析不同读写模式(如只读、只写、读写等)对文件操作的影响。
3、文件属性的获取和修改获取文件的基本属性,如文件大小、创建时间、修改时间、访问权限等。
尝试修改文件的部分属性,如只读属性、隐藏属性等,观察修改后的效果。
4、文件目录的操作创建、删除和遍历目录。
实现文件在不同目录之间的移动和复制操作。
四、实验步骤1、文件的创建、删除和重命名以下是使用 Python 实现文件创建、删除和重命名的示例代码:```pythonimport os创建文件file_path ="exampletxt"with open(file_path, 'w') as f:fwrite("This is a test file")删除文件osremove(file_path)重命名文件new_file_path ="renamed_exampletxt"osrename(file_path, new_file_path)```运行代码后,可以在指定的目录中观察到文件的创建、删除和重命名操作的结果。
2、文件的读写操作读取文本文件的示例代码:```pythonfile_path ="text_filetxt"with open(file_path, 'r') as f:content = fread()print(content)```按行读取文本文件的示例代码:```pythonfile_path ="text_filetxt"with open(file_path, 'r') as f:for line in f:print(linestrip())```写入数据到文件的示例代码:```pythonfile_path ="outputtxt"with open(file_path, 'w') as f:fwrite("New data written to file")```分别运行上述代码,观察文件的读写结果。
操作系统文件管理实验报告-图文

操作系统文件管理实验报告-图文实验报告课程名称计算机操作系统实验名称文件管理班级学号姓名成绩指导教师赵安科实验日期 2021年6月18日一.实验题目:文件管理二.实验内容:模拟文件存储空间的管理,采用空白文件目录法和空白块链法实施空间分配。
三.实验说明:文件存储空间管理是文件系统的重要内容。
常用的管理思想有空白文件目录法、空白块链法和位示图法。
本实验采用前两种方法进行空间分配。
(1)空白文件目录法进行空间分配时,需要建立相关的数据结构,记录目前空白区域和已使用区域,假设开始时全部区域空闲。
当有文件需要存储时,先检查空白文件目录,找到适合区域立即分配,并修改空白文件目录表和已使用区域分配表。
为此需建立两张表格,分别记录相关数据。
空白文件目录表(初始)序号 1 首空白块号 0 空白快个数 100 物理块号0,1,2,……,98,99 备注空白文件目录(中间)序号 1 2 3 4 5 首空白块号 2 9 25 39 …… 空白块个数 4 3 5 2 …… 物理块号 2,3,4,5 9,10,11 25,26,27,28,2939,40 …… 标志未分配未分配未分配未分配未分配已使用区域表(中间)上述两张表的数据在系统运行中是发生变化的。
文件标识beta Alpha Toyota Sony Ford …… 首块号 0 6 12 30 50 …… 文件块个数 2 3 13 9 4 …… 状态占用占用占用占用占用…… 备注文件空闲区分配和释放算法如下图所示:图一文件空闲区分配算法图二文件空闲区回收算法(2)空白块链法进行空间分配时,需要建立链表数据结构,将空闲块按顺序加以组织,分配和回收时在链首完成,同时建立文件目录,记录文件占用空间情况。
文件标识beta Alpha Toyota Sony Ford …… 首块号 0 6 12 30 50 …… 备注四.实验要求:(1)自拟模拟数据演示运行结果(假定系统可用空闲块数为100)。
文件管理实验报告

一、实验目的1. 理解文件管理的概念和基本原理。
2. 掌握文件系统的结构及其组成。
3. 学会使用文件管理系统进行文件操作。
4. 了解文件系统的性能优化方法。
二、实验环境1. 操作系统:Windows 102. 文件管理系统:Windows Explorer3. 实验工具:文本编辑器(如Notepad)三、实验内容1. 文件系统的基本概念2. 文件系统的结构3. 文件操作4. 文件系统性能优化四、实验步骤1. 文件系统的基本概念(1)打开Windows Explorer,观察文件系统的组织结构。
(2)分析文件系统的组成,包括文件、目录、驱动器等。
(3)了解文件名、扩展名、路径等基本概念。
2. 文件系统的结构(1)创建一个新文件夹,命名为“实验文件夹”。
(2)在“实验文件夹”中创建一个文本文件,命名为“实验报告.txt”。
(3)观察文件系统的树状结构,理解目录与文件之间的关系。
3. 文件操作(1)打开“实验报告.txt”,使用文本编辑器进行编辑。
(2)保存并关闭编辑器。
(3)将“实验报告.txt”复制到“实验文件夹”的子目录中。
(4)删除“实验文件夹”中的“实验报告.txt”。
(5)重命名“实验文件夹”中的子目录。
4. 文件系统性能优化(1)查看磁盘属性,了解磁盘空间占用情况。
(2)对磁盘进行碎片整理。
(3)使用磁盘清理工具清理磁盘中的临时文件。
五、实验结果与分析1. 文件系统的基本概念通过实验,我们了解了文件系统的基本概念,包括文件、目录、驱动器等。
文件系统是操作系统管理文件的一种数据结构,用于存储、检索、更新和删除文件。
2. 文件系统的结构实验中,我们创建了文件夹和文件,并观察了文件系统的树状结构。
文件系统采用分层结构,目录与文件之间通过路径连接。
3. 文件操作实验中,我们进行了文件操作,包括创建、编辑、复制、删除和重命名。
这些操作是文件管理的基本技能。
4. 文件系统性能优化通过磁盘碎片整理和清理磁盘中的临时文件,我们提高了文件系统的性能。
操作系统实验报告文件管理

操作系统实验报告文件管理文件管理是操作系统的重要功能之一,它负责对计算机系统中的文件进行组织、存储和访问。
文件管理系统的设计和实现对操作系统的性能和可靠性起着重要作用。
本文将介绍文件管理的基本概念、文件系统的组织方式和文件的操作方法。
一、文件管理的概念文件是计算机系统中存储和管理数据的基本单位,它可以是文本、图像、音频、视频等各种类型的数据。
文件管理的目标是实现对文件的有效组织和高效访问,使得用户和应用程序可以方便地读取、写入和删除文件。
文件管理系统主要包括以下几个方面:1.文件组织方式:文件可以按照不同的方式进行组织,包括顺序文件、索引文件、哈希文件等。
不同的组织方式有不同的优势和适用场景,可以根据实际需要选择合适的组织方式。
2.文件存储管理:文件在存储设备上的存储方式包括连续存储、链式存储和索引存储等。
不同的存储方式对文件的读写性能和空间利用率有影响,需要根据实际情况进行选择。
3.文件访问控制:对文件的访问需要进行权限控制,保证只有合法的用户或应用程序可以读取和写入文件。
文件访问控制主要通过访问权限和文件属性来实现。
二、文件系统的组织方式1.单级目录结构:这是最简单的文件系统组织方式,所有文件都位于同一个目录下。
由于没有目录的嵌套结构,文件的查找和管理比较简单,但是对于大量文件的管理不够灵活。
2.层次目录结构:该方式通过目录的嵌套结构来组织文件,可以形成一棵树状结构。
目录可以包含子目录和文件,用户可以通过目录路径来访问文件。
这种组织方式可以更好地组织大量的文件,提高文件的查找效率。
3.索引目录结构:该方式使用一个索引表来记录文件的位置和属性信息,用户通过索引表中的索引来访问文件。
索引表可以根据文件名、文件类型等信息快速定位到文件的位置,提高访问效率。
此外,索引表还可以支持对文件的动态增删改查操作。
三、文件的操作方法1.创建文件:文件的创建是指在文件系统中创建一个新文件,并为其分配存储空间。
创建文件时需要指定文件名和文件类型,并根据需要为文件设置访问权限和属性。
操作系统课程设计-文件管理实验报告

操作系统课程实验报告2013~2014年度第1学期院系:学号:姓名:任课教师:成绩评定:实验一题目:文件管理完成日期:年月日1、实验目的了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。
实验要求用高级语言编写和调试一个简单的模拟文件管理程序。
加深理解有关盘块的分配与回收、目录管理等的具体实施策略。
2.、实验内容模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。
建立相应的数据结构(如:位示图等),模拟盘块管理。
可以参照图6界面进行设计。
3、算法设计1)、定义主面板MainFrame,布局好各个控件,并初始化/** 往node节点下添加一个子节点obj;*/public void addChild(Object obj, DefaultMutableTreeNode node) {if (obj != null && node != null) {DefaultMutableTreeNode temp = new DefaultMutableTreeNode(obj);if (node.getAllowsChildren())node.add(temp);if(!((String) obj).equals("A:\\") && ((String) obj).length() <= 3)// 防止读取A软驱,会出现异常;用于初始用的;addChildren(cmd.listAll((String) obj), temp);}}/** 在node节点下添加数组children;*/public void addChildren(String[] children, DefaultMutableTreeNode node) { if (children != null && node != null) {for (int i = 0; i < children.length; i++) {addChild(children[i], node);}}}/** 对树的节点进行预提取;*/public void addPrefetchChildren(String path, DefaultMutableTreeNode node) { addChildren(cmd.listDirectory(path), node);}/** 对路径路径进行连接;(已经获得了所有的整个路径,需要量转化)*/public String toFilePath(String str) {// 先去掉头尾的[];String pa = str.substring(1, str.length() - 1);String[] temp = pa.split(", ");String path = "";for (int i = 1; i < temp.length; i++) {if (!path.endsWith("\\") && !path.equals(""))// 不为空是为去根节点;path += "\\";path += temp[i];}return path;}public String toPFilePath(String str) {// 先去掉头尾的[];String pa = str.substring(1, str.length() - 1);String[] temp = pa.split(", ");String path = "";for (int i = 1; i < temp.length - 1; i++) {if (!path.endsWith("\\") && !path.equals(""))// 不为空是为去根节点;path += "\\";path += temp[i];}return path;}public class ExpandListener implements TreeWillExpandListener {/** 树展开及收缩监听;*/private MainFrame mainFrame = null;public ExpandListener(MainFrame mainFrame) {this.mainFrame = mainFrame;}public void treeWillExpand(TreeExpansionEvent event) {// 对节点的路径进行转化String path = toFilePath(event.getPath().toString());TreePath treePath = event.getPath();DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath.getLastPathComponent();// System.out.println("所展开节点的路径:" + path);// System.out.println(treePath);if (node.getDepth() < 2) {Enumeration children = node.children();String filePath = "";while (children.hasMoreElements()) {DefaultMutableTreeNode temp = (DefaultMutableTreeNode) children.nextElement();filePath = "";filePath = path;if (!filePath.endsWith("\\"))filePath += "\\";filePath += temp.toString();// System.out.println("temp=" +filePath);mainFrame.addPrefetchChildren(filePath, temp);}}}2)、添加功能“添加文件(夹)addframe()”、“修改文件(夹)mvframe()”public void addframe() {JFrame addFrame = new JFrame();JLabel jlbl = new JLabel("请输入要添加的文件(夹)名:");addrs = new JLabel("");addrs.setBounds(180, 10, 100, 25);jlbl.setBounds(10, 10, 170, 25);addfile = new JTextField();addfile.setBounds(10, 40, 260, 25);btnaddf = new JButton("添加文件");btnaddd = new JButton("添加文件夹");btnaddf.setBounds(20, 80, 100, 25);btnaddd.setBounds(160, 80, 100, 25);btnaddf.addActionListener(this);btnaddd.addActionListener(this);addFrame.add(jlbl);addFrame.add(addrs);addFrame.add(addfile);addFrame.add(btnaddf);addFrame.add(btnaddd);addFrame.setBounds(400, 350, 300, 150);addFrame.setTitle("添加文件(夹)");addFrame.setLayout(null);addFrame.setVisible(true);}public void mvframe() {JFrame mvFrame = new JFrame();JLabel jlbl = new JLabel("请输入修改后的文件名:");mvrs = new JLabel("");mvrs.setBounds(160, 10, 140, 25);jlbl.setBounds(10, 10, 170, 25);mvfile = new JTextField();mvfile.setBounds(10, 40, 260, 25);btnmvf = new JButton("修改文件名");btnmvd = new JButton(" 修改文件夹名");btnmvf.setBounds(10, 80, 120, 25);btnmvd.setBounds(150, 80, 120, 25);btnmvf.addActionListener(this);btnmvd.addActionListener(this);mvFrame.add(jlbl);mvFrame.add(mvrs);mvFrame.add(mvfile);mvFrame.add(btnmvf);mvFrame.add(btnmvd);mvFrame.setBounds(400, 350, 300, 150);mvFrame.setTitle("修改文件(夹)名");mvFrame.setLayout(null);mvFrame.setVisible(true);}}3)显示文件* 显示系统中的所有盘符;public String[] ListDisks() {File roots[] = File.listRoots();// 根盘符;String disks[] = new String[roots.length];for (int i = 0; i < roots.length; i++) {disks[i] = roots[i].toString();}return disks;}* 获得路径path下的文件;public String[] listAll(String path) {try {File f = new File(path);String[] fileName;String tmp = null;mainFrame.fileshow.setText(null);mainFrame.filestyle.setText(null);if (f.isDirectory()) {fileName = f.list();// System.out.println("共有" + fileName.length + "个文件");for (int i = 0; i < fileName.length; i++) {mainFrame.fileshow.append(fileName[i] + '\n');tmp = path + '\\' + fileName[i];// System.out.println(tmp);if (listDirectory(tmp) != null) {mainFrame.filestyle.append("文件夹\n");} else {mainFrame.filestyle.append("文件\n");}}return fileName;} else if (f.isFile()) {System.out.println("这是一个文件");return null;} else {// System.out.println(path);return null;}} catch (Exception e) {return null;}}public String[] listDirectory(String path) {File f = new File(path);String[] fileName;if (f.isDirectory()) {fileName = f.list();return fileName;} else {// System.out.println(path + "是文件");return null;}}* 进行md操作;md <目录名> 功能: 创建新目录public void md(String directory) {if (!mainFrame.currentPath.equals("")) {String temp = mainFrame.currentPath + "\\" + directory;File newFile = new File(temp);if (!newFile.exists()) {try {if (newFile.isDirectory() == false) {newFile.mkdirs();System.out.println("文件夹创建成功!");} else {System.out.println("文件夹创建出错!");}} catch (Exception e) {System.out.println("出错信息:" + e.getMessage());}} else {System.out.println("文件夹已经存在");}}}* 进行rd操作;rd <目录名> 功能: 删除目录;public void del() {String temp = mainFrame.currentPath;File file = new File(temp);if (file.exists()) {if (file.delete()) {mainFrame.fileshow.setText("文件(夹)删除成功!");} else {mainFrame.fileshow.setText("文件(夹)删除操作出错!");}} else {mainFrame.fileshow.setText("文件(夹)不存在");}}/** 进行edit操作:edit <文件名> 功能: 新建文件*/public void edit(String file) {if (!mainFrame.currentPath.equals("")) {String temp = mainFrame.currentPath + "\\" + file;File newFile = new File(temp);if (newFile.exists()) {mainFrame.addrs.setText("文件已经存在!");System.out.println("文件已经存在!");} else {try {newFile.createNewFile();mainFrame.addrs.setText("文件创建成功!");System.out.println("文件创建成功!");} catch (Exception e) {System.out.println("文件创建失败:" + e.getMessage());}}}}public void mvf(String file){if (!mainFrame.PPath.equals("")) {String temp = mainFrame.PPath + "\\" + file;File newFile = new File(mainFrame.currentPath);if (newFile.exists()) {if(newFile.renameTo(new File(temp))==true){mainFrame.mvrs.setText("修改文件名成功!");}else{mainFrame.mvrs.setText("存在同名文件!");}}}}public void mvd(String dir){if (!mainFrame.PPath.equals("")) {String temp = mainFrame.PPath + "\\" + dir;File newFile = new File(mainFrame.currentPath);if (newFile.exists()) {if(newFile.renameTo(new File(temp))==true){mainFrame.mvrs.setText("修改文件夹名成功!");}else{mainFrame.mvrs.setText("存在同名文件夹!");}}}}}4、运行与测试运行时,弹出主界面双击文件盘C在E盘路径添加文件夹操作系统,再添加文件操作系统如果文件已存在会显示可以更改文件名称删除文件,不过有个BUG,要文件一层层删,才可以删除。
操作系统文件管理实验报告

操作系统文件管理实验报告操作系统文件管理实验报告1:引言本实验报告旨在详细描述操作系统文件管理实验的设计、实施和结果。
文件管理是操作系统的重要组成部分,负责对计算机中的文件进行组织、存储和访问。
本实验通过模拟文件管理的过程,加深对文件管理的理解和实践。
2:实验目的本实验的主要目的是:- 理解文件系统的概念和原理- 掌握文件的创建、读取、写入和删除等基本操作- 实施并测试文件的分配和回收算法- 评估不同的文件分配算法对系统性能的影响3:实验环境本实验的实施环境如下:- 操作系统:Windows 10- 开发环境:C++ 编程语言4:实验内容4.1 文件系统设计在文件系统设计中,首先确定文件的基本单位,例如块或扇区。
然后,定义文件控制块(FCB)结构,用于存储文件的元数据信息,如文件名、大小、创建时间、权限等。
接下来,设计文件分配表,记录系统中每个块的使用情况,用于实现文件的分配和回收。
4.2 文件的创建和删除在文件的创建过程中,首先为文件分配空间,并更新文件分配表。
然后,创建文件的FCB,并将其到目录项中。
在文件的删除过程中,首先释放文件的空间,并更新文件分配表。
然后,删除文件的FCB,并从目录项中移除。
4.3 文件的读写操作文件的读写操作是用户对文件进行读取和修改的过程。
在文件读取操作中,首先找到要读取的文件的FCB,获取文件的起始块地址,并从起始块中读取数据。
在文件写入操作中,首先找到要写入的文件的FCB,获取文件的起始块地址,并将数据写入起始块。
若文件大小超过起始块的容量,则按照一定的分配算法继续分配空间。
4.4 文件分配算法文件分配算法决定了操作系统如何管理文件的空间分配。
常用的文件分配算法包括顺序分配、分配和索引分配。
顺序分配将文件连续地存储在磁盘上,易于实现但可能产生外部碎片。
分配使用链表结构将文件存储在磁盘的不连续块中,不易产生外部碎片但可能引起存取时间增长。
索引分配使用索引表将文件存储在磁盘的不连续块中,不易产生外部碎片且存取时间相对较短,但索引表本身需要占用存储空间。
操作系统文件管理实验报告.

操作系统文件管理实验报告.
操作系统文件管理实验报告是操作系统实验课程中常见的实验报告,是对学生在实验过程中所掌握的知识和技能的总结。
实验报告的主要内容包括:实验目的、实验原理、实验步骤、实验结果及分析、实验总结、实验心得体会。
实验目的:通过本次实验,学习操作系统文件管理的知识,了解文件系统的概念,并掌握文件管理的基本操作,如新建文件、复制文件、删除文件等;
实验原理:操作系统文件管理是操作系统中一项重要技术,它具有支持用户对文件进行存储、分类、保护和索引等功能。
它的核心功能是通过提供文件系统的结构和管理方法,使用户能够方便地管理文件;
实验步骤:根据实验要求,完成操作系统文件管理实验,并记录实验步骤、实验结果及分析;
实验结果及分析:根据实验结果,对操作系统文件管理实验进行分析,总结出实验中遇到的问题及解决方案;
实验总结:总结本次实验的主要内容,概括出实验的学习结果;
实验心得体会:对本次实验的学习进行反思,总结出实验的感受和收获的经验教训。
文件管理课程设计报告

操作系统课程设计报告姓名:xxx______学号:xxxxxxxxxxxx__专业年级:软件2班指导教师:__xx_2016年 3月1日1 概述目的:本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。
意义: 本系统是基于linux平台运行在终端上的虚拟二级文件管理系统。
模拟真正的文件管理系统,并采用用户登录机制对文件和文件夹进行创建,修改,删除的操作.对于文件夹而言,可以进行创建删除的操作;对于文件而言,可以创建,修改,删除.删除文件夹时,同时删除相应文件夹下的文件。
采用用户登录使得用户管理文件更方便,并形成了二级的文件管理模式.主要任务:为DOS系统设计一个简单的二级文件系统。
要求做到以下几点:①可以实现下列命令:login 用户登录dir 列文件目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件②列目录时要列出文件名、物理地址、保护码和文件长度. ③源文件可以进行读写保护(1)设计思路程序中要求每个用户在登陆后才可对其拥有的文件进行操作,用户对于其他用户的文件无操作权.文件操作包括浏览、创建、删除、打开、关闭、阅读、写入、修改模式。
其他操作包括新建用户、帮助、用户登入、用户登出、退出系统。
在程序文件夹下有个名为“file”的系统根目录,此目录下包括:一个名为“mfd”的文件,记录所有注册过的帐号及密码;用户文件,以用户名作为文件名,内容为其拥有的文件名及属性;一个名为“keiji”的文件夹.“keiji”文件夹中包括:“file。
p”指针文件,记录所有已用的物理地址;一些以物理地址为名的文件,内容为文件内容。
(2) 数据结构file结构体系统文件.数据结构:fpaddrint,文件的物理地址、flengthint,文件长度、fmodeint,文件模式 0。
只读;1.可写;2.可读写;3.保护、 fname[]char,文件名; filemode结构体文件状态数据结构:isopenint,文件当前状态,0。
2023年最新的操作系统文件管理实验报告三篇

2023年最新的操作系统文件管理实验报告三篇操作系统文件管理实验报告一篇一、实训主要内容Word排版,表格制作与编辑。
Powerpoint的制作,初步认识计算机办公应用OFFICE。
二、实训过程第一天:初步熟悉计算机的性能和认识Word;第二天:练习Word题;第三天:认识Powerpoint并对昨天的Word练习予以测试;Excel实训作业第四天:将Word表格与Powerpoint的制作熟悉巩固;第五天:老师再次对我们Word与Powerpoint测验以及教我们一些有用的技能与方法,初步认识计算机办公应用。
OFFICE。
三、实训心得体会很快的,一个假期又过来了,面对本学期最后一次的校园生活实训,想着刚刚过去的最后一个周,紧张沉默之后更多的是感慨,印在脑海里的每一个足迹都是那么的深,真的说不出是什么感觉,伴着时间,就像是在和自己的影子赛跑,不可能从真实的两面去看清它,只是经意不经意的感受着有种东西在过去,也许更适合的只有那句话:时不待我,怎可驻足一周,短短的一周,我学到了很多不知道的东西,实在是感受颇深。
当今企业竞争范围的伴随社会市场经济的发展以及信息化程度的不断提高而日益扩大,这样就要求企业在各个方面加强管理,要求企业有更高的信息化集成来实现对企业的整体资源进行集成管理。
现代企业都意识到,企业之间的竞争是综合实力的竞争,要求企业有更强的资金实力,具备强有力的管理能力和更快的市场响应速度。
因此,引入计算机系统的意义是非常重大的。
在社会主义市场经济高速发展的今天,如果计算机的各项管理运做仍然停滞在以纸、笔为主要工具的阶段,就会因为信息量的快速增长而无法迅速、准确的运用计算机完成各项工作,这样,必将成为企业各方面发展的一个瓶颈。
而在当代这个以信息时代为主题的社会里,计算机技术高速发展,将信息技术应用于对现代企业的管理日益普及。
计算机技术不但可以提高信息的处理速度和提高信息处理的准确性,更重要的是,可以进一步的解放劳动力,将他们分配到更需要人力资源的岗位上去,从而加快社会工作的现代化、综合化的发展步伐。
文件管理实验实验报告

一、实验目的1. 理解文件管理的基本概念和原理。
2. 掌握文件系统的组织结构和文件操作的基本方法。
3. 培养实际操作能力,提高文件管理的效率。
二、实验环境1. 操作系统:Windows 102. 文件管理工具:Windows自带的文件管理器三、实验内容1. 文件系统的基本概念和原理2. 文件系统的组织结构3. 文件操作的基本方法4. 文件夹的创建、删除、重命名等操作5. 文件和文件夹的搜索与查找6. 文件属性的查看和修改7. 文件和文件夹的复制、移动、粘贴等操作8. 文件和文件夹的压缩与解压缩9. 文件和文件夹的权限设置四、实验步骤1. 打开文件管理器,查看当前文件夹的结构。
2. 创建一个新的文件夹,命名为“实验文件夹”。
3. 在“实验文件夹”中创建一个文本文件,命名为“实验.txt”。
4. 打开“实验.txt”,输入以下内容:实验报告:文件管理实验5. 保存并关闭“实验.txt”。
6. 将“实验.txt”复制到“实验文件夹”中。
7. 将“实验.txt”移动到桌面。
8. 重命名“实验.txt”为“实验1.txt”。
9. 删除“实验1.txt”。
10. 搜索“实验文件夹”中的文件。
11. 查看文件属性。
12. 修改文件属性。
13. 压缩“实验文件夹”。
14. 解压缩“实验文件夹”。
15. 设置文件和文件夹的权限。
五、实验结果与分析1. 文件系统的基本概念和原理:通过实验,我们了解到文件系统是计算机中用于存储和管理文件的数据结构,包括文件、文件夹、磁盘等。
文件系统负责对文件进行组织、存储、检索、更新等操作。
2. 文件系统的组织结构:实验中,我们通过文件管理器查看当前文件夹的结构,了解到文件系统采用树状结构组织文件和文件夹。
3. 文件操作的基本方法:实验中,我们学习了文件和文件夹的创建、删除、重命名、复制、移动、粘贴等操作方法。
4. 文件和文件夹的搜索与查找:实验中,我们通过文件管理器搜索功能,快速找到所需的文件和文件夹。
操作系统文件管理实验

操作系统实验三:文件管理一.实验目的1.加深对文件,目录,文件系统等概念的理解。
2.掌握UNIX文件系统的目录结构。
3.掌握有关UNIX文件系统操作的常用命令。
4.了解有关文件安全方面的知识。
二.实验内容1.使用pwd,cd,ls等命令浏览文件系统。
2.使用cat,cp,mv,head,tail,rm等命令查看你的文件。
3.使用ln命令进行文件的硬连接和符号连接。
4.使用find,grep命令进行文件查找和模式匹配。
5.使用chmod命令修改文件的权限。
三.实验步骤启动LINUX系统,首先以超级用户ROOT身份登录注册后(占用第一用户平台),然后以普通用户Mengqc(或其他用户名)身份登录注册后,在第二用户平台(<alt>+F2)练习文件管理有关命令.一般在[mengqc @ localhost mengqc]$提示符下键入有关命令。
1.浏览文件系统〈1〉运行pwd命令,确定你当前的工作目录(为/ home/mengqc)。
〈2〉利用以下命令显示当前工作目录的内容:(理解各字段意义。
)ls –l〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i可以显示文件的I节点号)ls –ai〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。
下附本实验文件目录结构。
Mkdir subdir/根目录Ls –lBin dev home rootMengqc mlwjsubdirfa(file1)〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。
Ls -d〈6〉使用cd命令,将工作目录改到根目录(/)上。
①用相对路径将工作目录改到根目录。
Pwd 显示当前目录为 /home/mengqcCd .. 相对路径,返回上一级。
Pwd 反馈显示当前目录为 /homeCd .. 相对路径,再返回上一级。
Pwd 反馈显示当前目录为 /Cd /home/mengqc 恢复本身目录(也可以cd↙ ).Pwd 反馈显示当前目录为 /home/mengqc②用绝对路径将工作目录改到根目录。
操作系统实验报告5——目录与文件管理

实验序号: 05 实验项目名称: linux下文件管理
学 号
2009406012
姓 名
吴松娇
Hale Waihona Puke 专业、班09计本(1)实验地点
32404
指导教师
汤敏丽
时间
2012.6.6
一、实验目的
1.加深对操作系统文件管理功能的理解。
2.熟练掌握linux下文件管理命令。
二、实验环境
装有linux系统的计算机。
(4)再次输入命令“ls -1”,确认两个目录和一个文件是否成功创建。
(5)输入命令“mv–f dir2 dir1”,将dir2目录移动到dirl目录;输入命令“mv–f cs.txt dir1”,将cs.txt目录移动到dirl目录。
(6)输入命令“cd dirl”,切换到dirl目录,再输入“ls”命令,查看到dir2目录。
13、分屏显示文件内容:more例子:ls | more /说明:每次分屏地查看由ls命令显示的/下子目录清单。
14、磁盘操作工具:du例子:du -sh .说明:列出当前目录下的所有子目录和文件占用的空间。
15、查找文件所在目录命令:which例子:which rm说明:查找rm命令保存在哪个目录。
(7)删除dir2目录,输入命令“rmdir dir2。”
2.文件操作
1.创建命令: touch例子: touch skxiao.xml说明:创建文件skxiao.xml
2.删除命令: rm例子: rm -r /home/shenkxiao/说明:删除/home/shenkxiao/下的所有文件
3.复制命令: cp例子: cp skxiao.xml /home/shenkxiao说明:将当前目录下的skxiao.xml文件拷贝到/home/shenkxiao目录下
操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理专业班级:网络工程1301学号:姓名:2015 年6 月16 日实验一文件管理一、实验目的文件管理是操作系统的一个非常重要的组成部分。
学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。
二、预备知识1.VS2010的使用2.C#的学习3.文件主目录与子目录的理解三、实验内容与步骤用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。
要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。
系统能够检查打入命令的正确性,出错时能显示出错原因。
对文件必须设置保护措施,例如只能执行,允许读等。
在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。
文件的操作至少有Create、delete、open、close、read、write 等命令。
所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。
前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。
另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。
程序流程图:逻辑设计:使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。
物理设计://主目录private FileUser[] mfd;//当前用户private FileUser currentuser;/// <summary>/// 文件/// </summary>public class FileObject {public string filename;public int size=20;public int read=0;public int write = 0;public string author;}/// <summary>/// 文件系统用户/// </summary>public class FileUser {public string username;public List<FileObject> ufd = new List<FileObject>();public int filecount=0;}步骤详述:1、主目录及用户目录机构显示:2、当前操作用户登录:3、文件管理系统菜单:4、create命令:5、open命令:6、close命令:7、delete命令:8、read命令9、write命令10、exit命令四、实验总结通过这次的课程设计使我认识到要将操作系统这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。
操作系统 实验4:文件管理实验报告

一、实验题目:文件管理实验--Linux下的文件管理二、实验目的和要求:实验目的:(1)加深对文件、目录、文件系统等概念的理解。
(2)掌握 Linux 文件系统的目录结构。
(3)掌握有关 Linux 文件系统操作的常用命令。
(4)了解有关文件安全性方面的知识。
实验要求:(1)正确使用文件管理命令,能熟练地对文件进行浏览、拷贝、移动和删除。
(2)能熟练地确定和更改工作目录,查看内容和文件属性,创建和删除目录。
(3)正确地理解文件的权限,并能进行相应更改。
(4)理解文件的类型及其表示形式。
(5)理解文件名的表示形式,在模式匹配中能正确使用通配符。
三、实验内容:(1)使用pwd,cd,ls等命令浏览文件系统。
(2)使用cat,cp,mv,head,tail,rm等命令查看你的文件。
(3)使用ln命令进行文件的硬连接和符号连接。
软中断通信(4)使用find,grep命令进行文件查找和模式匹配。
(5)使用chmod命令修改文件的权限。
四、实验步骤:(说明:对本实验涉及的教材中的相关内容进行归纳总结,只需简要说明即可。
)1、用root账号登录到终端,使用pwd命令查看当前目录2、用cd命令将当前目录切换到“/”目录下3、使用ls明令查看Linux的目录结构,了解各目录存放与系统相关的文件14、使用 cat、more、head、tail等命令显示 /etc/inittab文件内容5、使用grep 命令在/etc/inittab 文件中查询“initdefault”字符串26、使用find 命令查找 /目录下所有以main 开头的文件7、使用 cp 命令将/etc目录下的inittab文件拷贝到/root目录下8、使用 sort 和uniq 命令对 /root目录下的inittab文件排序后输出其结果39、统计inittab文件的字节数、行数、字数10、用mkdir命令在/root目录下创建一个test目录11、用cp命令将/etc目录及其下所有内容复制到test目录下12、使用cd和ls查看/root/test/etc 下的内容413、将test目录改名为test214、删除test2五、实验总结:通过本次实验,让我懂得了怎样创建文件以及文件管理命令的使用,对Linux的掌握和了解进一步加深。
操作系统文件管理实验报告.

操作系统文件管理实验报告.
本报告旨在分析本次实验的实验内容,并根据实验结果进行探究和总结。
本次实验主要涉及操作系统文件管理,主要包括文件系统管理,文件系统操作,以及
文件属性设置。
首先,我们以某操作系统为例,在该操作系统中搭建文件系统。
通过该操
作系统的api,可以快速的实现文件的创建,查看,编辑,复制,移动等文件管理操作。
同时,该操作系统还提供了对文件属性进行修改,设置和定义文件,文件夹,文件属性,
文件权限,文件结构等文件管理相关的操作。
在实验过程中,我们首先熟悉了文件系统,完成了文件管理功能的快速搭建,并对文
件系统的操作和操作步骤进行了了解和详细学习;其次,我们尝试完成了对文件的创建,
查看,编辑,复制,移动等操作;最后,我们还进行了对文件属性的设置和修改,更好的
完成了文件管理功能。
实验结果表明,通过本次实验,我们对操作系统文件管理有了较为全面的认识,对文
件系统的操作及其步骤也有了深入的了解,可以快速的搭建文件系统,实现文件管理功能。
总而言之,本次实验通过实操方式,使我们更好的理解和掌握了操作系统文件管理的
相关知识,促使我们更加熟练的操作。
最后,期待我们能在今后的实验中更多地熟悉和掌
握操作系统相关知识,不断完善和提高自己的技能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课程实验报告2013~2014年度第1学期院系:学号:姓名:任课教师:成绩评定:实验一题目:文件管理完成日期:年月日1、实验目的了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。
实验要求用高级语言编写和调试一个简单的模拟文件管理程序。
加深理解有关盘块的分配与回收、目录管理等的具体实施策略。
2.、实验内容模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。
建立相应的数据结构(如:位示图等),模拟盘块管理。
可以参照图6界面进行设计。
3、算法设计1)、定义主面板MainFrame,布局好各个控件,并初始化/** 往node节点下添加一个子节点obj;*/public void addChild(Object obj, DefaultMutableTreeNode node) {if (obj != null && node != null) {DefaultMutableTreeNode temp = new DefaultMutableTreeNode(obj);if (node.getAllowsChildren())node.add(temp);if(!((String) obj).equals("A:\\") && ((String) obj).length() <= 3)// 防止读取A软驱,会出现异常;用于初始用的;addChildren(cmd.listAll((String) obj), temp);}}/** 在node节点下添加数组children;*/public void addChildren(String[] children, DefaultMutableTreeNode node) { if (children != null && node != null) {for (int i = 0; i < children.length; i++) {addChild(children[i], node);}}}/** 对树的节点进行预提取;*/public void addPrefetchChildren(String path, DefaultMutableTreeNode node) { addChildren(cmd.listDirectory(path), node);}/** 对路径路径进行连接;(已经获得了所有的整个路径,需要量转化)*/public String toFilePath(String str) {// 先去掉头尾的[];String pa = str.substring(1, str.length() - 1);String[] temp = pa.split(", ");String path = "";for (int i = 1; i < temp.length; i++) {if (!path.endsWith("\\") && !path.equals(""))// 不为空是为去根节点;path += "\\";path += temp[i];}return path;}public String toPFilePath(String str) {// 先去掉头尾的[];String pa = str.substring(1, str.length() - 1);String[] temp = pa.split(", ");String path = "";for (int i = 1; i < temp.length - 1; i++) {if (!path.endsWith("\\") && !path.equals(""))// 不为空是为去根节点;path += "\\";path += temp[i];}return path;}public class ExpandListener implements TreeWillExpandListener {/** 树展开及收缩监听;*/private MainFrame mainFrame = null;public ExpandListener(MainFrame mainFrame) {this.mainFrame = mainFrame;}public void treeWillExpand(TreeExpansionEvent event) {// 对节点的路径进行转化String path = toFilePath(event.getPath().toString());TreePath treePath = event.getPath();DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath.getLastPathComponent();// System.out.println("所展开节点的路径:" + path);// System.out.println(treePath);if (node.getDepth() < 2) {Enumeration children = node.children();String filePath = "";while (children.hasMoreElements()) {DefaultMutableTreeNode temp = (DefaultMutableTreeNode) children.nextElement();filePath = "";filePath = path;if (!filePath.endsWith("\\"))filePath += "\\";filePath += temp.toString();// System.out.println("temp=" +filePath);mainFrame.addPrefetchChildren(filePath, temp);}}}2)、添加功能“添加文件(夹)addframe()”、“修改文件(夹)mvframe()”public void addframe() {JFrame addFrame = new JFrame();JLabel jlbl = new JLabel("请输入要添加的文件(夹)名:");addrs = new JLabel("");addrs.setBounds(180, 10, 100, 25);jlbl.setBounds(10, 10, 170, 25);addfile = new JTextField();addfile.setBounds(10, 40, 260, 25);btnaddf = new JButton("添加文件");btnaddd = new JButton("添加文件夹");btnaddf.setBounds(20, 80, 100, 25);btnaddd.setBounds(160, 80, 100, 25);btnaddf.addActionListener(this);btnaddd.addActionListener(this);addFrame.add(jlbl);addFrame.add(addrs);addFrame.add(addfile);addFrame.add(btnaddf);addFrame.add(btnaddd);addFrame.setBounds(400, 350, 300, 150);addFrame.setTitle("添加文件(夹)");addFrame.setLayout(null);addFrame.setVisible(true);}public void mvframe() {JFrame mvFrame = new JFrame();JLabel jlbl = new JLabel("请输入修改后的文件名:");mvrs = new JLabel("");mvrs.setBounds(160, 10, 140, 25);jlbl.setBounds(10, 10, 170, 25);mvfile = new JTextField();mvfile.setBounds(10, 40, 260, 25);btnmvf = new JButton("修改文件名");btnmvd = new JButton(" 修改文件夹名");btnmvf.setBounds(10, 80, 120, 25);btnmvd.setBounds(150, 80, 120, 25);btnmvf.addActionListener(this);btnmvd.addActionListener(this);mvFrame.add(jlbl);mvFrame.add(mvrs);mvFrame.add(mvfile);mvFrame.add(btnmvf);mvFrame.add(btnmvd);mvFrame.setBounds(400, 350, 300, 150);mvFrame.setTitle("修改文件(夹)名");mvFrame.setLayout(null);mvFrame.setVisible(true);}}3)显示文件* 显示系统中的所有盘符;public String[] ListDisks() {File roots[] = File.listRoots();// 根盘符;String disks[] = new String[roots.length];for (int i = 0; i < roots.length; i++) {disks[i] = roots[i].toString();}return disks;}* 获得路径path下的文件;public String[] listAll(String path) {try {File f = new File(path);String[] fileName;String tmp = null;mainFrame.fileshow.setText(null);mainFrame.filestyle.setText(null);if (f.isDirectory()) {fileName = f.list();// System.out.println("共有" + fileName.length + "个文件");for (int i = 0; i < fileName.length; i++) {mainFrame.fileshow.append(fileName[i] + '\n');tmp = path + '\\' + fileName[i];// System.out.println(tmp);if (listDirectory(tmp) != null) {mainFrame.filestyle.append("文件夹\n");} else {mainFrame.filestyle.append("文件\n");}}return fileName;} else if (f.isFile()) {System.out.println("这是一个文件");return null;} else {// System.out.println(path);return null;}} catch (Exception e) {return null;}}public String[] listDirectory(String path) {File f = new File(path);String[] fileName;if (f.isDirectory()) {fileName = f.list();return fileName;} else {// System.out.println(path + "是文件");return null;}}* 进行md操作;md <目录名> 功能: 创建新目录public void md(String directory) {if (!mainFrame.currentPath.equals("")) {String temp = mainFrame.currentPath + "\\" + directory;File newFile = new File(temp);if (!newFile.exists()) {try {if (newFile.isDirectory() == false) {newFile.mkdirs();System.out.println("文件夹创建成功!");} else {System.out.println("文件夹创建出错!");}} catch (Exception e) {System.out.println("出错信息:" + e.getMessage());}} else {System.out.println("文件夹已经存在");}}}* 进行rd操作;rd <目录名> 功能: 删除目录;public void del() {String temp = mainFrame.currentPath;File file = new File(temp);if (file.exists()) {if (file.delete()) {mainFrame.fileshow.setText("文件(夹)删除成功!");} else {mainFrame.fileshow.setText("文件(夹)删除操作出错!");}} else {mainFrame.fileshow.setText("文件(夹)不存在");}}/** 进行edit操作:edit <文件名> 功能: 新建文件*/public void edit(String file) {if (!mainFrame.currentPath.equals("")) {String temp = mainFrame.currentPath + "\\" + file;File newFile = new File(temp);if (newFile.exists()) {mainFrame.addrs.setText("文件已经存在!");System.out.println("文件已经存在!");} else {try {newFile.createNewFile();mainFrame.addrs.setText("文件创建成功!");System.out.println("文件创建成功!");} catch (Exception e) {System.out.println("文件创建失败:" + e.getMessage());}}}}public void mvf(String file){if (!mainFrame.PPath.equals("")) {String temp = mainFrame.PPath + "\\" + file;File newFile = new File(mainFrame.currentPath);if (newFile.exists()) {if(newFile.renameTo(new File(temp))==true){mainFrame.mvrs.setText("修改文件名成功!");}else{mainFrame.mvrs.setText("存在同名文件!");}}}}public void mvd(String dir){if (!mainFrame.PPath.equals("")) {String temp = mainFrame.PPath + "\\" + dir;File newFile = new File(mainFrame.currentPath);if (newFile.exists()) {if(newFile.renameTo(new File(temp))==true){mainFrame.mvrs.setText("修改文件夹名成功!");}else{mainFrame.mvrs.setText("存在同名文件夹!");}}}}}4、运行与测试运行时,弹出主界面双击文件盘C在E盘路径添加文件夹操作系统,再添加文件操作系统如果文件已存在会显示可以更改文件名称删除文件,不过有个BUG,要文件一层层删,才可以删除。