用java写了一个实用的类----递归的拷贝给定目录的.java文件到指定的一个文件中
当然可以扩展一下,做成一个实用的工具,做一下界面,增加一个可选择的后缀名...呵呵,自己懒的要命,有兴趣可以作一下,感觉这个工具还挺实用的,不需要你手工一个个复制,粘贴,只需要输入你要拷贝的目录和要拷贝到的文件的名字,成百上千的文件就会替你拷贝的好好的...呵呵,不过拷贝的次序不确定,我的那个SNLCompiler代码就是用这个把数百个文件合成一个文件贴到blog里的,阅读起来可能有困难...
[code]
package edu.jlu.fuliang;
import java.io.*;
public class CopyFiles {
public void copyAllFiles(String dirName, String toFileName) {
if (dirName.length() == 0) {
dirName = new String("..");
}
try {
File path = new File(dirName);
String[] fileNames = path.list();
if (fileNames != null) {
for (int i = 0; i < fileNames.length; i++) {
File file = new File(path.getPath(), fileNames[i]);
if (file.isDirectory()) {
copyAllFiles(file.getAbsolutePath(), toFileName);
} else {
if (fileNames[i].endsWith(".java")) {
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(
toFileName, true);
byte[] buf = new byte[512];
int size = 0;
while ((size = fis.read(buf, 0, buf.length)) != -1) {
fos.write(buf, 0, size);
fos.flush();
}
fis.close();
fos.close();
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CopyFiles copyFiles = new CopyFiles();
copyFiles.copyAllFiles(args[0], args[1]);
}
}
[/code]
当然可以扩展一下,做成一个实用的工具,做一下界面,增加一个可选择的后缀名...呵呵,自己懒的要命,有兴趣可以作一下,感觉这个工具还挺实用的,不需要你手工一个个复制,粘贴,只需要输入你要拷贝的目录和要拷贝到的文件的名字,成百上千的文件就会替你拷贝的好好的...呵呵,不过拷贝的次序不确定,我的那个SNLCompiler代码就是用这个把数百个文件合成一个文件贴到blog里的,阅读起来可能有困难...
[code]
package edu.jlu.fuliang;
import java.io.*;
public class CopyFiles {
public void copyAllFiles(String dirName, String toFileName) {
if (dirName.length() == 0) {
dirName = new String("..");
}
try {
File path = new File(dirName);
String[] fileNames = path.list();
if (fileNames != null) {
for (int i = 0; i < fileNames.length; i++) {
File file = new File(path.getPath(), fileNames[i]);
if (file.isDirectory()) {
copyAllFiles(file.getAbsolutePath(), toFileName);
} else {
if (fileNames[i].endsWith(".java")) {
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(
toFileName, true);
byte[] buf = new byte[512];
int size = 0;
while ((size = fis.read(buf, 0, buf.length)) != -1) {
fos.write(buf, 0, size);
fos.flush();
}
fis.close();
fos.close();
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CopyFiles copyFiles = new CopyFiles();
copyFiles.copyAllFiles(args[0], args[1]);
}
}
[/code]