答案 0 :(得分:9)
答案 1 :(得分:4)
使用下面的代码段获取所有子目录中的所有文件:
import java.io.File;
/**
*
* @author santoshk
*/
public class ListFiles {
File mainFolder = new File("F:\\personal");
public static void main(String[] args)
{
ListFiles lf = new ListFiles();
lf.getFiles(lf.mainFolder);
}
public void getFiles(File f){
File files[];
if(f.isFile())
System.out.println(f.getAbsolutePath());
else{
files = f.listFiles();
for (int i = 0; i < files.length; i++) {
getFiles(files[i]);
}
}
}
}
答案 2 :(得分:0)
答案 3 :(得分:0)
import java.io.File;
import java.util.ArrayList;
import java.util.LinkedList;
public class FileEnumerator {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// Prepare the List of files
String path = "C:/";
ArrayList<String> Files = new ArrayList<String>();
LinkedList<String> Dir = new LinkedList<String>();
File f = new File(path);
Dir.add(f.getAbsolutePath());
while(!Dir.isEmpty())
{
f = new File(Dir.pop());
if(f.isFile())
{
Files.add(f.getAbsolutePath());
}
else
{
String arr[] = f.list();
try
{
for(int i = 0;i<arr.length;i++)
{
Dir.add(f.getAbsolutePath()+"/"+arr[i]);
}
}
catch(NullPointerException exp)
{
Dir.remove(f.getAbsoluteFile());
}
}
}
//Print the files
for(int i = 0;i<Files.size();i++)
{
System.out.println(Files.get(i));
}
}
}
我认为这段代码应该运行良好。虽然我在Windows上测试过它。但其他操作系统最多只需要很小的改动。
答案 4 :(得分:0)
import java.io.*;
public class filedir
{
public static void main(String[] args)
{
try{
Files f = new File("C:\\");//the path required
String a[];
a=f.list();
for (int i = 0; i <a.length; i++) {
System.out.println(a[i]);
}
} catch(Exception e) {
System.err.println(e);
}
}
}