我是一位Java新手
现在在研究IO这一块
突然想到一个问题,我想把一个文件夹里的所有文件名都记录下来
于是我写了下面的代码
但是报错了,我找不到错误,于是请教各位了PS。我在网上找了下类似的问题,好像还有个  文件夹里包含文件夹名字的读取,这个更复杂,也请一并帮我写一下吧
希望在我的代码的基础上修改,这样我才看的懂import java.io.*;
public class FileCount {

public static void main(String[] args) 
{
String filePath="G:/music/mymusic";
File files=new File(filePath);
files.list();
String[] str=files.list();
for(int i=0;i<=str.length;i++)
{
System.out.println(str);
}
}
}

解决方案 »

  1.   

    i<=str.length改成
    i<str.length
      

  2.   

    1楼,不是这个问题那是我不小心打错的
    但是还是有问题,import java.io.*;
    public class FileCount {

    public static void main(String[] args) 
    {
    String filePath="G:/music/mymusic";
    File files=new File(filePath);
    files.list();
    String[] str=files.list();
    for(int i=0;i<str.length;i++)
    {
    System.out.println(str[i]);
    }
    }
    }
      

  3.   

    import java.io.*;
    import java.util.ArrayDeque;
    public class FileCount {
        
        public static void main(String[] args) 
        {
         //采用深度遍历
            String filePath="G:/Program Files";
            File files=new File(filePath);
            
            //双端队列作栈
            ArrayDeque<File> stack = new ArrayDeque<File>();
            
            //如果是文件夹
            if(files.isDirectory()) {
            
            //文件夹进栈
             stack.push(files);
            
             while(!stack.isEmpty()) {
             File dir = stack.pop();
             File[] files1 =  dir.listFiles();
             for(File f : files1) {
            
             if(f.isFile()) {//是文件,则打印出来
             System.out.println(f.getName());
             }
            
             else { //是文件夹,则进栈
             stack.push(f);
             }
             }
             }
            }
            else if(files.isFile()) {
             System.out.println(files.getName());
            }
        }
    }
      

  4.   


    String filePath="G://music//mymusic";
      

  5.   

    public class FileCount {    public static void main(String[] args) {        String filePath = "G:/music/mymusic";
            File files = new File(filePath);
            String[] str = files.list();
            if (str != null && str.length > 0) {
                for (int i = 0; i < str.length; i++) {
                    System.out.println(str[i]);
                }
            } else {
                System.out.println("没有找到文件...");
            }
        }
    }