Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在目录中搜索_Java_File_Search_Directory - Fatal编程技术网

Java 在目录中搜索

Java 在目录中搜索,java,file,search,directory,Java,File,Search,Directory,您好,我正在处理的程序的一个部分需要能够搜索目录。我了解如何使用path变量以及如何访问目录;但是,一旦进入目录,如何区分文件?我们可以制作目录中包含的文件的数组/或链接列表并使用它进行搜索吗 在这个特定的程序中,用户的目标是输入一个目录,从那里进入子目录,找到一个以.mp3结尾的文件,并将其复制到用户创建的新目录中。可以肯定的是,文件夹中只有一个.mp3文件 任何帮助都将不胜感激 您可以使用文件对象来表示目录,然后使用列表文件()(返回文件数组文件[])将文件检索到该目录中 如果需要搜索子目录

您好,我正在处理的程序的一个部分需要能够搜索目录。我了解如何使用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;
}