我对 java 有点陌生,正在尝试创建一个程序,该程序循环并打印出指定位置内的所有目录。这是我到目前为止所拥有的:
import java.io.File;
public class main{
public static void main(String[] args) {
File[] files = new File("/media/will/External/Movies").listFiles();
showFiles(files);
}
public static void showFiles(File[] files) {
String name;
for (File file : files) {
if (file.isDirectory()) {
name = file.getName();
if (!(name.contains("!")) && name.contains("(") && name.contains(")")) {
System.out.println("Directory: " + name);
}
showFiles(file.listFiles()); // Calls same method again.
} else {
// System.out.println("File: " + file.getName());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我在那里进行了一些检查以仅打印出某些文件夹名称(必须同时包含“(”和“)”并且不能包含“!”)。
我在控制台中得到的一段输出是这样的:
Directory: The Matrix (1999)
Directory: The Matrix Reloaded (2003)
Directory: The Matrix Revolutions (2003)
Directory: American Pie 1 (1999)
Directory: American Pie 2 (2001)
Directory: American Pie 3 - The Wedding (2003)
Directory: American Pie 4 - Band Camp (2005)
Directory: American Pie 5 - The Naked Mile (2006)
Directory: American Pie 6 - Beta House (2007)
Directory: American Pie 7 - The Book of Love (2009)
Directory: American Pie 8 - Hole In One (2010)
Directory: Borat (2006)
Directory: Casino Royale (2006)
Directory: Despicable Me 2 (2013)
Directory: Elysium (2013)
Directory: Horrible Bosses (2011)
Directory: Finding Nemo (2003)
Directory: Friday Night Lights (2004)
Directory: Full Metal Jacket (1987)
Directory: Gladiator (2000)
Directory: Hannibal (2001)
Directory: Nightcrawler (2014)
Directory: How To Train Your Dragon (2010)
Directory: I Am Legend (2007)
Run Code Online (Sandbox Code Playgroud)
据我所知,当前的顺序没有正确或理由让我返回目录。对于某些部分,它似乎是按字母顺序排列的,但对于其他区域,它似乎是随机的。
最终目标是按字母顺序输出,但是我想了解为什么首先出现这个顺序。
谢谢!!
看这里 :
http://docs.oracle.com/javase/7/docs/api/java/io/File.html
Run Code Online (Sandbox Code Playgroud)
你在打电话
listFiles
public File[] listFiles()
Run Code Online (Sandbox Code Playgroud)
我引用了 java 文档(我提供的列表):
“不能保证结果数组中的名称字符串会以任何特定顺序出现;特别是,它们不能保证按字母顺序出现。”
如果要对文件进行排序,请执行以下操作:
File[] fileList = folder.listFiles();
Arrays.sort(fileList);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3295 次 |
| 最近记录: |