文件名:Main.java
源码:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
FileList fileList = new FileList();
}
}
文件名:FileList.java
源码:
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FileList {
public FileList() {
String path = "";
String[] strings;
List<File> files, fList;
File copyFiles = null;
FileReader fileReader = null;
StringBuffer stringBuffer = null;
try {
// path = "C:\\Users\\jix.SRK01\\Desktop\\world\\";
path = new File("").getCanonicalFile().toString();
copyFiles = new File(path + File.separator + "copy.txt");
fileReader = new FileReader(copyFiles);
files = new AllFile().allFile(path);
char[] chars = new char[(int) copyFiles.length()];
fileReader.read(chars);
stringBuffer = new StringBuffer();
stringBuffer.append(chars);
strings = stringBuffer.toString().split("\r\n");
// 如果copy文件夹存在,则删除
if (new File(path + File.separator + "copy").exists()) {
for (File file2 : new AllFile().allFile(path + File.separator
+ "copy")) {
file2.delete();
}
for (File file2 : new AllFile().allDirectory(path
+ File.separator + "copy")) {
file2.delete();
}
new File(path + File.separator + "copy").delete();
}
// 找出文件夹内所有包含copy.txt内的所有文件
fList = new ArrayList<File>();
for (String string2 : strings) {
for (File file2 : files) {
if (file2.isFile()) {
if (string2.equals(file2.getName())
&& !string2.equals("RemoveFile.jar")) {
fList.add(file2);
}
}
}
}
fileReader.close();
new CopyFile().copyFile(fList, path, File.separator + "copy");
} catch (IOException e) {
e.printStackTrace();
}
}
}
文件名:AllFile.java
源码:
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
public class AllFile {
List<File> fileList = new ArrayList<File>();
List<File> directoryList = new ArrayList<File>();
public List<File> allFile(String url) {
try {
File filepath = new File(url);
File[] files = filepath.listFiles();
for (File file : files) {
if (file.isFile()) {
fileList.add(file);
} else if (file.isDirectory()) {
allFile(file.getPath());
}
}
} catch (NullPointerException e) {
System.out.println("url not exist!");
}
return fileList;
}
public List<File> allDirectory(String url) {
try {
File filepath = new File(url);
File[] files = filepath.listFiles();
for (File file : files) {
if (file.isDirectory()) {
directoryList.add(file);
allDirectory(file.getPath());
}
}
} catch (NullPointerException e) {
System.out.println("url not exist!");
}
return directoryList;
}
public void allMap(String url) {
try {
File filepath = new File(url);
File[] files = filepath.listFiles();
LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>();
String key = null, value = null;
for (File file : files) {
if (file.isFile()) {
key = file.getPath();
value = file.getName();
linkedHashMap.put(key, value);
} else if (file.isDirectory()) {
key = file.getPath();
value = file.getName();
linkedHashMap.put(key, value);
allFile(file.getPath());
}
}
System.out.println(linkedHashMap.toString());
} catch (NullPointerException e) {
System.out.println("url not exist!");
}
}
}
文件名:CopyFile.java
源码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.channels.WritableByteChannel;
import java.util.List;
public class CopyFile {
public void copyFile(List<File> oldFile, String pathz, String dir) {
File file1 = null;
String path = "";
String newPath = pathz + dir;
FileInputStream in = null;
FileOutputStream out = null;
FileChannel inChannel = null;
WritableByteChannel outChannel = null;
for (File file : oldFile) {
// 创建待copy文件的文件目录
path = new File(newPath).getPath();
if (!file.getParent().substring(pathz.length()).equals("")) {
path = new File(newPath).getPath()
+ file.getParent().substring(pathz.length())
+ File.separator;
new File(path).mkdirs();
} else {
path += File.separator;
}
// 文件存在则删除
file1 = new File(path, file.getName());
if (file1.exists()) {
file1.delete();
}
try {
// copy文件
// System.out.println(path + file.getName());
file1.createNewFile();
in = new FileInputStream(file);
out = new FileOutputStream(file1);
inChannel = in.getChannel();
outChannel = out.getChannel();
inChannel.transferTo(0, inChannel.size(), outChannel);
inChannel.close();
outChannel.close();
in.close();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
文件名:copy.bat
内容:
java -jar CopyFile.jar
jar包以资源上传,可运行,对部分异常未做完全处理点击打开链接
http://pan.baidu.com/s/1nvdbD5B
把CopyFile.jar放入待复制文件夹内,新建一个copy.txt文件,把待复制文件名写入,格式如下:
1.txt
2.txt
双击copy.bat文件即可执行
以上内容仅供互相交流,如有异常,请留言