无法访问java中的所有驱动器和文件

时间:2014-07-02 14:37:23

标签: java

它只显示c:\ drive的文件名 它不适用于循环...如果我写list=roots[0].list()list=roots[1].list();单独它工作正常。但我需要它在for循环中工作

String list[];

File[] roots = File.listRoots();

System.out.println(roots.length);

for(int i=0;i<roots.length;i++) {
    System.out.println("Root["+i+"]:" + roots[i]);

    list=roots[i].list();

    for( i=0;i<list.length;i++) {
        System.out.println(list[i]);
    }
}

3 个答案:

答案 0 :(得分:2)

在两个循环中使用相同的循环变量i。这导致了混乱。

答案 1 :(得分:0)

我看到的第一个问题是你有一组嵌套的'for'循环,每个循环使用变量'i'。

不是遍历根文件,而是遍历每个文件的子文件,而是转到第一个根文件。然后使用相同的索引变量迭代该内容。我认为发生的是变量'i'然后超过'roots.length'并且循环正在退出,尝试这样的事情:

String[] list;
File[] roots = File.listRoots();
System.out.println(roots.length);
for(int i = 0; i < roots.length; i++)
{
    list = roots[i].list();
    for(int j = 0; j < list.length; j++)
    {
        System.out.println(list[j]);
    }
}

答案 2 :(得分:0)

在第二个循环中使用不同的增量:例如j!

String list[];

File[] roots = File.listRoots();

System.out.println(roots.length);

for(int i=0;i<roots.length;i++) {
    System.out.println("Root["+i+"]:" + roots[i]);

    list=roots[i].list();

    for( j=0;j<list.length;j++) {
        System.out.println(list[j]);
    }
}