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