您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > java课程设计-文件管理系统
课程设计课程设计名称:java课程设计专业班级:计科1201班级学生姓名:XXXX学号:XXXXX指导教师:XXXXX课程设计时间:1目录目录------------------------1课程设计任务书-------------------------2一、需求分析-------------------------3二、概要设计-------------------------4三、开发语言-------------------------4四、详细设计------------------------4五、调试与分析-------------------------13六、功能测试-------------------------14七、结论与心得--------------------------15八、参考资料--------------------------16九、成绩评价表--------------------------172计算机科学技术(卓越计划)专业课程设计任务书学生姓名陈张涛专业班级计科卓F1201学号201216010109题目文件管理系统课题性质工程设计课题来源自拟课题指导教师郑丽萍同组姓名无主要内容该课题通过用户图形界面实现对文件和文件夹的管理,主要功能包括对指定文件夹中的内容进行复制、压缩,解压,剪切,删除,重命名等。所涉及的系统需要考虑各种输入输出异常处理,并具有现良好的交互能力,使文件管理更加简便有效任务要求1.按照内容要求,分析java文件管理功能,查阅有关文献,完成复制、压缩,解压等各种管理的设计。2.应用java技术进行文件管理开发,并对相应的文件进行测试,完成文件管理系统。3.按照课程设计上机安排,在规定时间上机,上机考勤情况计入总成绩。4.结合设计和开发内容,完成课程设计报告。要求语言表达逻辑合理,图表清晰,准确表达课程设计内容和结果。参考文献[1]明日科技.Java从入门到精通(第3版),清华大学出版社,2012[2](美)霍斯特曼,科内尔著,周立新等译.Java核心技术卷1基础知识(原书第9版),机械工业出版社,2014[3](美)埃克尔.Java编程思想(第4版).机械工业出版社,2007[4](美)梁勇,李娜.Java语言程序设计:进阶篇(原书第8版),机械工业出版社,2011审查意见指导教师签字:教研室主任签字:2014年6月15日3文件管理系统一、需求分析题目要求对文件进行复制,压缩,解压等操作,相当于一个简单的文管理系统。对此我新加了剪切,删除,和重命名等功能。程序的整体输入控制是采用图形用户界面,同时为了减少用户输入时不必要的错误,程序还支持文件选择器功能,用户可以直接点击相应的按钮选择相应的文件或文件夹。(1)复制功能实现了将文件复制到指定的文件夹中(包括文件夹的复制和单个文件的复制),同时允许用户选择不同类型的文件复制。其中有全文件复制(文件夹里所有文件全部复制)、无空文件夹的文件复制(即复制的文件夹不含空文件夹)、指定参数的文件复制(即文件夹复制时可以指定相应的类型参数doc、txt等选择要被复制的文件类型)。(2)压缩功能实现将文件压缩到指定路径(包括单个文件的压缩和文件夹的压缩)。(3)解压功能实现将指定的压缩文件解压到指定的路径(4)剪切功能实现将制订文件夹下的文件剪切到制订的文件夹下,与复制不同的,剪切后该文件只存在于剪切后的文件夹。(5)删除功能实现了文件的删除和文件夹删除,其中文件的删除可以直调用文件的方法删除文件,而文件夹的删除必须递归删除文件夹中的所有文件,然后再层层调用方法删除文件夹。(6)重命名功能实现对指定文件夹下的文件的重命名,如果该文件夹下已经存在该文件名,则提示重新命名4二、概要设计图2-1设计模块图创建Menu对象选择功能创建Copy创建Zip创建Unzip创建Cut创建Delete创建Rename调用compactFile调用UnzipchangeDirectoryrenameFile调用copy调用empty调用extcopy调用delFile调用delDir图2-2系统流程图三、运行环境、开发语言Eclipse、Java四、详细设计1程序清单表4-1主要列出了各个文件实现的功能表4-1程序清单文件名功能解压剪切无空文件夹全文件参数复制文件删除文件夹删除无空文件夹全文件复制压缩重命名文件管理系统剪切删除解压全文件无空文件夹参数复制文件删除文件夹删除开始菜单界面复制压缩解压剪切删除重命名5Copytest.java实现功能类,包含所有功能所需的方法Menu.java图形界面—菜单界面Copy.java图形界面—复制界面Zip.java图形界面—压缩界面Unzip.java图形界面—解压界面Cut.java图形界面—剪切界面Delete.java图形界面—删除界面Rename.java图形界面—重命名界面表4-2主要列出Copytest.java文件中各个方法的所实现的功能。其余文件的方法基本都是用于图形用户界面的设置,在此就不一一例举。表4-2Copytest.java中方法清单方法名功能doCopy(Stringpath1,Stringpath2,Stringname)单个文件复制copy(Stringfrompath,Stringtopath)无参数文件夹复制(含空文件夹)emptycopy(Stringfrompath,Stringtopath)无参数文件夹复制(不含空文件夹)extcopy(Stringfrompath,Stringtopath,String[]temp)参数限制的文件复制compactFile(Stringsource,Stringtarget)文件压缩,调用文件夹压缩方法和文件压缩方法recursionFile(Stringfilepath,Stringorigin)递归调用文件,同时实现对文件夹的压缩ZipFile(Filefile,Stringorigin)压缩单个文件Unzip(Stringsource,Stringtarget)解压文件delFile(Stringfilepath)删除单个文件delDir(Stringpath)删除一个文件夹renameFile(Stringpath,Stringoldname,Stringnewname)重命名文件changeDirectory(Stringfilename,Stringoldpath,Stringnewpath)将文件剪切到指定文件夹62主要代码2.1菜单界面运行程序时会弹出一个菜单界面,供用户选择相应的文件操作。包括复制、压缩、解压、剪切、删除、重命名。该功能截图如图2-1所示.图4-1菜单功能界面2.2复制界面点击复制选项,会弹出窗口,如图4-2所示。在文本框里输入相应信息,或者直接点击相应的按钮,通过文件选择器选择文件,获取路径信息,如图4-3所示。具体代码如下:图4-2文件复制图4-3文件选择器选择文件(1)复制功能代码,用于调用//单个文件复制,用于调用publicstaticvoiddoCopy(Stringpath1,Stringpath2,Stringname){Readerin=null;Writerout=null;try{in=newFileReader(path1+/+name);out=newFileWriter(path2+/+name);7intlen=0;char[]c=newchar[1024];while((len=in.read(c))!=-1){out.write(c,0,len);}}catch(IOExceptione){e.printStackTrace();}finally{try{in.close();out.close();}catch(IOExceptione){e.printStackTrace();}}}(2)无参数的文件复制,递归遍历文件夹,调用doCopy()方法实现复制//无参数文件夹复制(含空文件夹)publicstaticvoidcopy(Stringfrompath,Stringtopath){Fileffile=newFile(frompath);File[]fs=ffile.listFiles();if(fs!=null){for(Filef:fs){if(f.isDirectory()){newFile(topath+/+f.getName()).mkdirs();copy(f.getAbsolutePath(),topath+/+f.getName());}else{doCopy(frompath,topath,f.getName());//执行文件复制操作}}}}(3)功能是在全文件复制的基础上改动的,在方法中增加判断语句,如果是空文件夹就不复制。//无空文件夹的复制publicstaticvoidemptycopy(Stringfrompath,Stringtopath){Fileffile=newFile(frompath);File[]fs=ffile.listFiles();if(fs!=null){for(Filef:fs){if(f.isDirectory()){if((f.listFiles()).length0){8newFile(topath+/+f.getName()).mkdirs();emptycopy(f.getAbsolutePath(),topath+/+f.getName());}}else{doCopy(frompath,topath,f.getName());//执行文件复制操作}}}}(4)从用户输入操作获取要被复制的文件类型,然后通过数组传递参数,根据参数来限制复制的文件类型//有参数限制的文件复制publicstaticvoidextcopy(Stringfrompath,Stringtopath,String[]temp){Filefromfile=newFile(frompath);File[]fs=fromfile.listFiles();if(fs!=null){for(Filef:fs){//如果是文件夹则进行递归调用if(f.isDirectory()){if((f.listFiles()).length0){newFile(topath+/+f.getName()).mkdirs();extcopy(f.getAbsolutePath(),topath+/+f.getName(),temp);}}//如果是文件则进行判断else{for(inti=0;itemp.length;i++){if(f.getName().endsWith(temp[i])){//过滤不符合要求的文件doCopy(frompath,topath,f.getName());//执行文件复制操作}}}}}}2.3压缩界面点击压缩选项,会弹出窗口,如图4-4所示。在文本框里输入相应信息,或9者直接点击相应的按钮,通过文件选择器选择文件,获取路径信息,类似可参照图4-3。具体代码如下:图4-4文件压缩界面(1)通过该方法传递路径信息,同时调用递归遍历的方法//文件压缩publicstaticvoidcompactFile(Stringsource,Stringtarget){try{out=newZipOutputStream(newBufferedOutputStream(newFileOutputStream(target)));//创建压缩文件输出流recursionFile(source,source);//递归遍历文件out.close();//关闭输入流}catch(Exceptione){System.out.println(压缩出现错误!);}}(2)该方法实现递归遍历文件夹,同时判断文件是否为文件夹,如果是,就添加压缩项,如果不是就调用单个文件压缩的方法//压缩文件夹publicstaticvo
本文标题:java课程设计-文件管理系统
链接地址:https://www.777doc.com/doc-4085667 .html