【发布时间】:2013-08-22 16:20:14
【问题描述】:
我有许多 url 文件需要按文件名过滤。我有一个应用程序需要在这些文件名中查找的单词数组列表。我曾尝试使用 contains() 函数,但它一直在询问 CharSequence。我已经尝试将数组列表转换为 CharSequence 列表,但仍然不起作用。
代码如下:
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
public class Filter {
public static File folder = new File("C:/Users/blah/blah);
static String temp = "";
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Reading files under the folder "+ folder.getAbsolutePath());
listFilesForFolder(folder);
}
public static void listFilesForFolder(final File folder){
ArrayList<String> aa = new ArrayList<String>
(Arrays.asList("one","two","three","four","five","six","seven"));
CharSequence[] cs = aa.toArray(new CharSequence[aa.size()]);
for(final File fileEntry : folder.listFiles()){
if(fileEntry.isDirectory()){
listFilesForFolder(fileEntry);
} else {
if (fileEntry.isFile()){
temp = fileEntry.getName();
if((temp.substring(temp.lastIndexOf('.') + 1,
temp.length()).toLowerCase()).equals("url"))
System.out.println("File = " + folder.getAbsolutePath()+ "\\" + fileEntry.getName());
}
}
}
}
}
【问题讨论】:
-
将
folder.listFiles()存储在一个变量中并对其进行迭代,否则将为每个循环创建一个新的文件列表,这会降低您的应用程序的速度。 -
你的数组怎么可能是字符序列?您不想将数组中的内容转换为字符序列吗?