现在已经可以对一个指定文件操作,想改成对文件夹里所有文件做同样操作,指定用递归,但不知道怎么写代码,求指教
public static List<File> getFiles(String path){
File root = new File(path);
List<File> files = new ArrayList<File>();
if(!root.isDirectory()){
files.add(root);
}else{
File[] subFiles = root.listFiles();
for(File f : subFiles){
files.addAll(getFiles(f.getAbsolutePath()));
}
}
return files;
}
public static void main(String[] args) {
List<File> files = getFiles("D:\\usr\\local\\java\\jdk1.6.0_30");
for(File f : files){
System.out.println(f.getName());
}
}
File root = new File(path);
List<File> files = new ArrayList<File>();
if(!root.isDirectory()){
files.add(root);
}else{
File[] subFiles = root.listFiles();
for(File f : subFiles){
files.addAll(getFiles(f.getAbsolutePath()));
}
}
return files;
}
public static void main(String[] args) {
List<File> files = getFiles("D:\\usr\\local\\java\\jdk1.6.0_30");
for(File f : files){
System.out.println(f.getName());
}
}
大概就是这样了,没有做异常处理,自己看着办~
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-07-24
public static void main(String[] args) {
File file = new File("D://test");
readFile(file);
}
public static void readFile(File file){
if(file.isDirectory()){
System.out.println(file.getAbsolutePath());
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
readFile(files[i]);
}
}else{
System.out.println(file.getName());
}
}
File file = new File("D://test");
readFile(file);
}
public static void readFile(File file){
if(file.isDirectory()){
System.out.println(file.getAbsolutePath());
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
readFile(files[i]);
}
}else{
System.out.println(file.getName());
}
}