java正则表达式,读取文件夹

标签 java regex pattern-matching

我正在尝试创建一个程序,该程序返回文件中所有视频文件和文件夹的名称。我已经找到了视频文件的模式并且工作正常

String pattern = "(^\\w[ .A-z0-9_-]+(\\.mp4$|\\.avi$|\\.mkv$))";

但我对如何读取文件夹感到困惑,我尝试过的所有内容都有模式读取文件夹,但也有其他文件。由于文件夹名称可能在任何地方都带有点,因此很难通过扩展名来隔离。关于如何只读文件夹有什么想法吗?

最佳答案

我使用这段代码(在 BalusC 的帮助下)来查找文件名及其扩展名。

如果您的正则表达式正确,则只需将其插入此处并根据您的要求添加其余代码。

public static void main(String[] args){
    File[] files = new File("temp").listFiles();
    showFiles(files);
}

public static void showFiles(File[] files) {
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.println("Directory: " + file.getName());
            showFiles(file.listFiles()); 
        } else {
            System.out.println("File: " + file.getName());
            getFileNameAndSuffix(file);
        }
    }
}
public static void getFileNameAndSuffix(File file) 
{
    int index = file.getName().lastIndexOf('.');
    System.out.println(file.getName().substring(0, index));
    System.out.println(file.getName().substring(index));
}

关于java正则表达式,读取文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152280/

相关文章:

java - 如何根据以下字符/单词匹配 URI 字符串的特定部分

java - Android Coverflow 起始位置

java - UIMA 鲁塔 : set feature with MARKONCE action

java - 如何让Eclipse显示日文符号(汉字)?

正则表达式匹配两个 con

python - 使用正则表达式提取多行字符串的一部分

Javascript RegExp 作为属性

java - struts2中默认拦截器抛出的异常如何处理?

java - 查找两个特定单词之间的字符串

compiler-errors - Ocaml 错误 : Syntax error: ')' expected, 但我找不到在哪里