📄 copydirectoryfile.java
字号:
package com.newsource.tools;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyDirectoryFile {
private String systemFilePath = "E:/20080619";//可以放在一个配置脚本中
private FileFiler filePattern = new TxtFileFiler();
private CityInfo cityInfo = new ReadCityInfoFromMemory();
public void listFiles(String pathStr) {
File dir = new File(pathStr);
File[] files = dir.listFiles();
if (files != null)
for (int i = 0; i < files.length; i++) {
if (files[i].isFile())
System.out.println(files[i].getName());
else if (files[i].isDirectory()) {
listFiles(files[i].getAbsolutePath());
}
}
}
public String getCity(String name) {
for (int i = 0; i < cityInfo.length(); i++) {
if (name.indexOf(cityInfo.get(i)) >= 0)
return cityInfo.get(i);
}
return null;
}
public void copyDirectoryFiles(String pathStr) {
File dir = new File(pathStr);
File[] files = dir.listFiles();
if (files != null)
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
if (!cityInfo.hasName(files[i].getName())) {
// 创建该目录
String city = getCity(files[i].getName());
if (city != null) {
File mkdir = new File(systemFilePath + "/" + city);
if (!mkdir.exists())
mkdir.mkdirs();
// 拷贝文件
copyFiles(city, files[i].getAbsolutePath());
}
}
}
}
}
public void copyFiles(String city, String pathStr) {
File dir = new File(pathStr);
File[] files = dir.listFiles();
if (files != null)
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
// 拷贝目录中的文件
System.out.println(files[i].getAbsolutePath());
if (filePattern.isPattern(files[i].getName())) {
copyFileFrom(files[i].getAbsolutePath(), systemFilePath
+ "/" + city + "/" + files[i].getName());
}
}
}
}
public void copyFileFrom(String from, String to) {
File fileInfo = new File(from);
FileInputStream input = null;
FileOutputStream output = null;
if (fileInfo.exists()) {
try {
input = new FileInputStream(from);
output = new FileOutputStream(to);
byte[] b = new byte[1024 * 5];
int len;
while ((len = input.read(b)) != -1) {
output.write(b, 0, len);
}
} catch (Exception e) {
} finally {
if (output != null) {
try {
output.flush();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (input != null)
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
CopyDirectoryFile visitDir = new CopyDirectoryFile();
visitDir.copyDirectoryFiles(visitDir.systemFilePath);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -