public class Sorter {
String dir1 = ("C:/Users/Drew/Desktop/test");
String dir2 = ("C:/Users/Drew/Desktop/");
public void SortingAlgo() throws IOException {
// Declare files for moving
File sourceDir = new File(dir1);
File destDir = new File(dir2);
//Get files, list them, grab only mp3 out of the pack, and sort
File[] listOfFiles = sourceDir.listFiles();
if(sourceDir.isDirectory()) {
for(int i = 0; i < listOfFiles.length; i++) {
//list Files
System.out.println(listOfFiles[i]);
String ext = FilenameUtils.getExtension(dir1);
System.out.println(ext);
}
}
}
}
我想在我的程序中仅过滤掉.mp3。我显然是初学者,并尝试从谷歌和本网站上复制一些东西。如何设置目录(sourceDir)并将这些过滤后的文件移动到自己的文件夹中?
答案 0 :(得分:1)
我发现使用GLOB的NIO.2方法或自定义过滤最干净的解决方案。查看此示例,了解如何在附加链接中使用GLOB或过滤器示例:
Path directoryPath = Paths.get("C:", "Program Files/Java/jdk1.7.0_40/src/java/nio/file");
if (Files.isDirectory(directoryPath)) {
try (DirectoryStream<Path> stream = Files.newDirectoryStream(directoryPath, "*.mp3")) {
for (Path path : stream) {
System.out.println(path);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
有关内容列表和目录过滤的详细信息,请访问Listing and filtering directory contents in NIO.2
答案 1 :(得分:0)
if(ext.endWith(".mp3")){
//do what ever you want
}
答案 2 :(得分:0)
File
提供了在文件列表开始生成时过滤文件列表的功能。
File[] listOfFiles = sourceDir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().toLowerCase().endsWith(".mp3");
}
});
现在,这有很多好处,其中最主要的是你不需要再次对列表进行后期处理,或者同时在内存中有两个列表。
它还提供可插拔功能。您可以创建一个MP3FileFilter
类并重新使用它。