import java.io.File; import java.util.Scanner; public class ListRoots { public static File choose(File[] roots) { Scanner sc=new Scanner(System.in); System.out.print("请输入你需要遍历的盘符(格式为: D://):"); //用户输入要遍历的盘符 String clientRoot=sc.next(); //判断用户要遍历的盘符 for(int i=0;i<roots.length;i++) { if(roots[i].toString().equals(clientRoot)) return roots[i]; } //查找无结果,退出 return roots[0]; } public static void main(String[] args) { //获取系统根 File[] roots = File.listRoots(); System.out.println("您系统的的盘有:"); for(int i=0;i<roots.length;i++) { System.out.println(roots[i]); } //列出用户所选择的盘的内容 File[] file=choose(roots).listFiles(); for(int j=0;j<file.length;j++) { find(file[j]); } } //利用递归遍历所有文件夹 public static void find(File file) { if (file.isDirectory()) { System.out.println(file+"文件夹下有:"); File[] files=file.listFiles(); for(int i=0;i<files.length;i++) { find(files[i]); System.out.println("/t"+files[i].getName()); } } else System.out.println("/t"+file.getName()); } };