如题 我编了一个程序:只能读出一部份,各位大人帮忙看看 急呀
public static File[] findDir(File file)throws Exception {
if (!file.exists())
return null; if (file == null || !file.isDirectory())
throw new Exception("文件对象为空或不是文件夹! "); File[] child = file.listFiles(); for (int i = 0; i < child.length; i++) {
if (child[i].isDirectory())
return findDir(child[i]);
} return child; }
public static File[] findDir(File file)throws Exception {
if (!file.exists())
return null; if (file == null || !file.isDirectory())
throw new Exception("文件对象为空或不是文件夹! "); File[] child = file.listFiles(); for (int i = 0; i < child.length; i++) {
if (child[i].isDirectory())
return findDir(child[i]);
} return child; }
{
if (child[i].isDirectory())
return findDir(child[i]);
}
你看看你的程序的逻辑啊
当是目录的时候,你的程序就直接return 了。你的程序返回的应该是最下层目录的非目录文件!
{
try
{
File file = new File("F:\\practice");
List list = new ArrayList();
findDir(file, list);
Iterator iterator = list.iterator();
while (iterator.hasNext())
{
File fileIterm = (File)iterator.next();
System.out.println(fileIterm.getAbsolutePath());
}
}
catch(Exception e)
{
}
} public static void findDir(File file, List list)throws Exception {
if (list == null)
{
throw new NullPointerException("List cannot be null!");
} if (!file.exists())
{
return;
} if (file == null || !file.isDirectory())
{
throw new Exception("文件对象为空或不是文件夹! ");
} File[] child = file.listFiles(); for (int i = 0; i < child.length; i++)
{
if (child[i].isDirectory())
{
findDir(child[i], list);
}
else
{
list.add(child[i]);
}
}
}已经在我本机上运行了! 可以的
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class FT { public static List findDir(File file) throws Exception {
if (!file.exists())
return null;
List list = new ArrayList();
List sublist=new ArrayList();
if(file.isFile()){
list.add(file);
return list;
}
File[] child = file.listFiles();
for (int i = 0; i < child.length; i++) {
if(child[i].isFile()){
list.add(child[i]);
}
if (child[i].isDirectory()){
sublist=findDir(child[i]);
list.addAll(sublist);
}
} return list; } /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
List f = FT.findDir(new File("D:/virtual machine"));
Iterator it = f.iterator();
while (it.hasNext()) {
File file = (File) it.next();
System.out.println(file.getName());
}
} catch (Exception e) {
e.printStackTrace();
} }}