本帖最后由 黄奕豪 于 2012-6-17 06:54 编辑
老早就想做这个东西了,但是由于一直在看视频,赶进度,所以没有弄,趁着某次机会的契机改了一下,就完工了~~~
用途:看教程的时候,是不是看完一个,点一个文件夹不爽啊?这个来了,将你所有文件夹里面的指定格式的文件提取出来,放在同一个文件夹去,看到你爽~~不过,你发觉没有,在电脑上搜索,一个拷贝,一个粘贴也能做到
前景:做个软件就那么简单,当你搞个GUI,将主函数内的获取目录和目的目录用个FileDialog代替,目标格式用个多选框来代替,再打包一下,一个提取软件就完成了~~
上代码:- package getFile;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- public class AviGet {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //文件格式名
- String key = ".avi";
- //在这里填入搜索文件夹目录
- File src = new File("E:\\黑马程序员_张孝祥_Java基础加强\\01_张孝祥Java高新技术_课程价值与目标介绍");
- //在这里填入目标文件目录
- File dest = new File("d:\\黑马程序员_张孝祥_Java基础加强");
- if((!src.exists())&&(!src.isDirectory())){
- System.out.println("请确定所要搜寻目录是否正确!");
- return;
- }
- if(!dest.exists()){
- dest.mkdir();
- }
- move(src,dest,key);
- }
- public static void move(File src, File dest,String key) {
- // TODO Auto-generated method stub
- File[] files = src.listFiles();
- for(int i = 0;i<files.length;i++){
- if((!files[i].isHidden())&&files[i].isDirectory()){
- move(files[i],dest,key);
- }else if((!files[i].isHidden())&&files[i].getName().endsWith(key)){
- String strname = files[i].getName();
- File destfile = new File(dest,strname);
- InputStream in = null;
- int len = -1;
- byte[] by = new byte[1024];
- OutputStream out = null;
- try {
- in = new FileInputStream(files[i]);
- out = new FileOutputStream(destfile);
- while((len = in.read(by))!=-1){
- out.write(by, 0, len);
- out.flush();
- }
- System.out.println("完成"+strname+"的复制!");
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- finally{
- try{
- if(out!=null){
- out.close();
- }
- }catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- try{
- if(in!=null){
- in.close();
- }
- }catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
- }
- }
复制代码 |