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