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

时间:2012-08-28 03:09:05

标签: java regex pattern-matching

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

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

但我坚持如何阅读文件夹,我尝试的一切都有模式阅读文件夹,但也有其他文件。由于文件夹名称可能在任何地方都有点,因此难以通过扩展名隔离。关于如何只阅读文件夹的任何想法?

1 个答案:

答案 0 :(得分:1)

我使用此代码(在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));
}