我是一位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);
}
}
}
现在在研究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);
}
}
}
i<str.length
但是还是有问题,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]);
}
}
}
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());
}
}
}
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("没有找到文件...");
}
}
}