我试图获取一个文件夹中的所有 mkv 文件并将它们的名称放入一个数组中,但由于某种原因我的代码仅返回一个值。我认为 FilenameFilter() 会返回所有适当的值,而不仅仅是它遇到的第一个条目。
//Get a list of all mkv files in the extraction folder
File file = new File(extractedFolder);
File[] listoffiles = file.listFiles(new FilenameFilter() {
public boolean accept(File file, String name) {
return name.toLowerCase().endsWith(".mkv");
}
});
我需要迭代这段代码吗?我的阵列是否仅设置为处理一项?这是我在这段代码中看到的唯一两个潜在问题,但在我看来都很好。
Java: Find .txt files in specified folder也是我正在使用的资源。
编辑:我的文件结构将所有内容都放在同一个文件夹中。该文件夹地址是
C:\Users\user1\Documents\folder1\extraction files.
“解压文件”文件夹内有 27 个 mkv 文件和 28 个 xml 文件(见图)。我上面给出的代码只是一次拉取 12 个文件。最初创建数组时是否需要指定一个数字?
编辑2 使用此资源( Java process - unable to unzip zip file ),我意识到我用来解压缩文件的缓冲区(在使用上面的代码抓取它们之前)正在填满并终止进程。本质上,问题是使用 Runtime() 而不是 ProcessBuilder() (这可以防止 cmd 缓冲区溢出)。问题解决了!
最佳答案
使用可以使用commons-io中的FileUtils为您处理这个问题。
关于java - 抓取文件夹中的特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18039925/