ead(blockIndex);//将父目录的盘块读出Р if (没有子目录) {Р 寻找要读出文件的目录项Р if (找到该文件) {Р int readBlockNum = 该文件的起始盘块号Р 一块一块地将文件内容读出Р 将读出的内容返回Р } else {Р 没有该文件,返回空Р }Р } else {Р 寻找名为path的目录项Р if (存在该目录项) {Р typeFile(paths, fileName, type, (int) mf[match].getStart());Р//继续向下递归Р } else {Р 不存在该目录,返回Р }Р }Р }Р//修改属性:Р public static void changeAttribute(String paths, String fileName, String type, char attribute, int blockIndex) {//调用了hasSameFile后再调用Р String path = null;Р if (如果路径中“/”后还有目录) {Р path = 目录名Р paths = 去掉path之后的路径Р }Р MyFile[] mf = read(blockIndex);//将父目录的盘块读出Р if (没有子目录) {Р 寻找该文件Р if (找到该文件) {Р 修改文件的目录项的属性Р 将父目录的盘块写回磁盘文件Р } else {Р 不存在该文件,返回Р }Р } else {Р 寻找名为path的目录Р if (找到该目录) {Р changeAttribute(paths, fileName, type, attribute, (int) mf[match].getStart());//继续向下递归Р } else {Р 没有该目录Р }Р }Р }Р}Р函数调用关系图: