1 / 8

Lab17

Lab17. 程序设计 B 班 2008-01-03. DiskBackup 磁盘备份. 设计一个 applet/application, 实现任意磁盘的所有文件向另一个磁盘的拷贝 ( 备份 ) 如何获取磁盘的所有逻辑盘符 ? 逻辑盘也是目录 , 使用 File 对象的 isDirectory() 方法 , 例如测试盘 E 是否存在可用 (new File(“E:”)).isDirectory()==true? 文件拷贝 用 FileInputStream, FileOutputStream 从指定文件获取 I/O 流

Télécharger la présentation

Lab17

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lab17 程序设计B班 2008-01-03

  2. DiskBackup 磁盘备份 • 设计一个applet/application, 实现任意磁盘的所有文件向另一个磁盘的拷贝(备份) • 如何获取磁盘的所有逻辑盘符? • 逻辑盘也是目录,使用File对象的isDirectory()方法,例如测试盘E是否存在可用(new File(“E:”)).isDirectory()==true? • 文件拷贝 • 用FileInputStream, FileOutputStream从指定文件获取I/O流 • 套用BufferedInputStream, BufferedOutputStream提高效率 • 文件I/O结束后,记得调用close()关闭流

  3. DiskBackup 磁盘备份 • 其他问题 • 获取当前目录currentDirectory下所有文件: • (new File(currentDirectory)).listFiles(); • 使用递归方法解决嵌套目录的备份问题: • 备份方法DiskBackup(currentDirectory) • 对当前目录下的文件(非目录)进行备份 • 对当前目录下的子目录subDirectory调用DiskBackup(subDirectory)

  4. 界面要求 • 2个下拉列表ComboBox • 为实现任意盘间的拷贝, 在applet初始化时获取硬盘当前的所有逻辑盘符添加到2个列表中.

  5. 界面要求 • Button • Start Backup: 开始备份 • Create Log File: 输出日志文件

  6. 生成备份日志 • 日志文件 • 将完成的所有备份情况保存在一个文件log.txt中

  7. 选做部分 • TextArea(有剩余时间选做) • 将完成的备份情况显示在文本域中(日志文件的前台显示),例如:“X:/***/***/ 已备份” • 如何同步显示备份情况?将备份方法的调用包含在线程里(不要求)

  8. 进阶(课后思考) • 二次备份时如何实现原备份基础上的动态备份? • 判断为新的文件或修改过的文件:备份 • 判断文件自上次备份后未修改过:跳过 • 判断上次备份文件包含有过期(不存在)文件:删除

More Related