您好我正在处理的程序的一部分需要能够搜索目录。我理解如何使用路径变量以及如何到达目录;但是一旦你在目录中,你如何区分文件?我们可以创建目录中包含的文件的数组/或链接列表并使用它进行搜索吗?
在这个特定的程序中,目标是让用户输入一个目录,从那里进入子目录并找到以.mp3结尾的文件并将其复制到新用户创建的目录。可以肯定的是,文件夹中只有一个.mp3文件。
非常感谢任何帮助。
答案 0 :(得分:1)
看到你说的话,我想你会使用java7 Path api。
要知道路径是目录还是简单文件,请使用Files.isDirectory(Path)
要列出目录中的文件/目录,请使用Files.list(Path)
Files类的javadoc:http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html
如果您使用" old" java.io.File api,然后你有一个listFiles方法,它可以将FileFilter作为参数来过滤,例如,只有以" .mp3"结尾的文件。
祝你好运答案 1 :(得分:0)
您可以使用File
对象来表示您的目录,然后使用listFiles()
(返回文件数组File[]
)将文件检索到该目录中。
如果您需要搜索子目录,可以递归使用listFiles()
为您遇到的每个目录。
对于文件扩展名,Apache Commons IO库有一个整洁的FileFilter
:SuffixFileFilter
。
答案 2 :(得分:0)
按原样获取文件:
List<String> results = new ArrayList<String>();
File[] files = new File("/path/to/the/directory").listFiles();
for (File file : files)
if (file.isFile())
results.add(file.getName());
如果你想要扩展名:
public static String getExtension(String filename){
String extension = "";
int i = fileName.lastIndexOf('.');
if (i > 0)
extension = fileName.substring(i+1);
return extension;
}
还有其他方法可以获取文件扩展名listed here,但它们通常需要一个通用的外部库。