修改下面代码 public class Demomp3 { public static void main(String[] args) { // String pathname = "/Users/nxy/Desktop/0529"; File dir = new File("/Users/nxy/Desktop/0529"); // String[] list = dir.list(); search(dir.getPath()); } public static String search(String name){ String[] list = dir.list(); // String[] names = dir.list(); for(String file : list) { // System.out.println(file); if (file.isFile() && file.getName().endsWith(".mp3")) { System.out.println(file.getName()); } else { search(file); } } return ; } }
时间: 2024-02-14 10:11:23 浏览: 119
您的代码有一些问题,需要进行修改才能正确执行。下面是修改后的代码:
```java
import java.io.File;
public class Demomp3 {
public static void main(String[] args) {
String pathname = "/Users/nxy/Desktop/0529";
File dir = new File(pathname);
search(dir);
}
public static void search(File dir) {
File[] files = dir.listFiles();
for(File file : files) {
if (file.isFile() && file.getName().endsWith(".mp3")) {
System.out.println(file.getName());
} else if (file.isDirectory()) {
search(file);
}
}
}
}
```
主要修改了以下内容:
1. 将 `search` 方法的参数从字符串类型修改为 `File` 类型,这样可以避免在递归时重复构造 `File` 对象,提高代码效率;
2. 将 `dir.list()` 修改为 `dir.listFiles()`,这样可以获取到目录下的所有子文件和子目录;
3. 修改了 `search` 方法的返回值,因为在代码中并没有使用到这个返回值。
修改后的代码可以正确地遍历指定目录下的所有 `.mp3` 文件并输出文件名。
阅读全文