Lab17 程序设计B班 2008-01-03
DiskBackup 磁盘备份 设计一个applet/application, 实现任意磁盘的所有文件向另一个磁盘的拷贝(备份) 如何获取磁盘的所有逻辑盘符? 逻辑盘也是目录,使用File对象的isDirectory()方法,例如测试盘E是否存在可用(new File(“E:”)).isDirectory()==true? 文件拷贝 用FileInputStream, FileOutputStream从指定文件获取I/O流 套用BufferedInputStream, BufferedOutputStream提高效率 文件I/O结束后,记得调用close()关闭流
DiskBackup 磁盘备份 其他问题 获取当前目录currentDirectory下所有文件: (new File(currentDirectory)).listFiles(); 使用递归方法解决嵌套目录的备份问题: 备份方法DiskBackup(currentDirectory) 对当前目录下的文件(非目录)进行备份 对当前目录下的子目录subDirectory调用DiskBackup(subDirectory)
界面要求 2个下拉列表ComboBox 为实现任意盘间的拷贝, 在applet初始化时获取硬盘当前的所有逻辑盘符添加到2个列表中.
界面要求 Button Start Backup: 开始备份 Create Log File: 输出日志文件
生成备份日志 日志文件 将完成的所有备份情况保存在一个文件log.txt中
选做部分 TextArea(有剩余时间选做) 将完成的备份情况显示在文本域中(日志文件的前台显示),例如:“X:/***/***/ 已备份” 如何同步显示备份情况?将备份方法的调用包含在线程里(不要求)
进阶(课后思考) 二次备份时如何实现原备份基础上的动态备份? 判断为新的文件或修改过的文件:备份 判断文件自上次备份后未修改过:跳过 判断上次备份文件包含有过期(不存在)文件:删除