我想在GridView
中显示不同文件夹的图像,但我不知道我需要做什么才能获得一个列表,其中包含可绘制文件夹内文件的名称。
答案 0 :(得分:9)
此方法将为您提供一个列表,其中包含dir文件夹列表以及子文件夹:
public void listf(String directoryName, ArrayList<File> files) {
File directory = new File(directoryName);
// get all the files from a directory
File[] fList = directory.listFiles();
for (File file : fList) {
if (file.isFile()) {
files.add(file);
} else if (file.isDirectory()) {
listf(file.getAbsolutePath(), files);
}
}
}
答案 1 :(得分:0)
首先在AsyncTask类中使用此方法。
private List<File> getListFiles(File parentDir) {
ArrayList<File> inFiles = new ArrayList<File>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
if(file.getName().toString().toLowerCase().contains(fileNameToSearch.toLowerCase()) || file.getName().toString().toUpperCase().contains(fileNameToSearch.toUpperCase())){
inFiles.add(file);
}else {
inFiles.addAll(getListFiles(file));
}
} else {
if(file.getName().toString().toLowerCase().contains(fileNameToSearch.toLowerCase()) || file.getName().toString().toUpperCase().contains(fileNameToSearch.toUpperCase())){
inFiles.add(file);
}
}
}
return inFiles;
}
从doInBackground(...)
List<File> files = getListFiles(new File(directoryPath));