Java 在目录中搜索
您好,我正在处理的程序的一个部分需要能够搜索目录。我了解如何使用path变量以及如何访问目录;但是,一旦进入目录,如何区分文件?我们可以制作目录中包含的文件的数组/或链接列表并使用它进行搜索吗 在这个特定的程序中,用户的目标是输入一个目录,从那里进入子目录,找到一个以.mp3结尾的文件,并将其复制到用户创建的新目录中。可以肯定的是,文件夹中只有一个.mp3文件Java 在目录中搜索,java,file,search,directory,Java,File,Search,Directory,您好,我正在处理的程序的一个部分需要能够搜索目录。我了解如何使用path变量以及如何访问目录;但是,一旦进入目录,如何区分文件?我们可以制作目录中包含的文件的数组/或链接列表并使用它进行搜索吗 在这个特定的程序中,用户的目标是输入一个目录,从那里进入子目录,找到一个以.mp3结尾的文件,并将其复制到用户创建的新目录中。可以肯定的是,文件夹中只有一个.mp3文件 任何帮助都将不胜感激 您可以使用文件对象来表示目录,然后使用列表文件()(返回文件数组文件[])将文件检索到该目录中 如果需要搜索子目录
任何帮助都将不胜感激 您可以使用
文件
对象来表示目录,然后使用列表文件()
(返回文件数组文件[]
)将文件检索到该目录中
如果需要搜索子目录,可以对遇到的每个目录递归使用listFiles()
至于文件扩展名,库中有一个整洁的FileFilter
:subfixfilefilter 按如下方式获取文件:
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());
获取文件扩展名还有其他方法,但它们通常需要一个公共的外部库。看看你说的,我假设你使用的是java7 Path api 要知道路径是目录还是简单文件,请使用Files.isDirectory(path) 要列出目录中的文件/目录,请使用files.list(Path) Files类的javadoc: 如果您使用“old”java.io.File api,那么您有一个listFiles方法,它可以将FileFilter作为参数进行过滤,例如,仅过滤以“.mp3”结尾的文件
祝你好运到目前为止,你有没有尝试过这方面的任何部分?如果你发布你的代码将会很有帮助。您希望用户通过点击式UI或键入命令来完成此操作吗?
public static String getExtension(String filename){
String extension = "";
int i = fileName.lastIndexOf('.');
if (i > 0)
extension = fileName.substring(i+1);
return extension;
}