【发布时间】:2011-09-26 15:41:46
【问题描述】:
我正在尝试读取 SDCARD 中的所有图像及其所在目录。例如:如果 /mnt/sdcard/album1 中有文件 TEST.jpg 和 /mnt/sdcard/album1/album2 中有 TEST2.jpg 文件,我应该能够获得目录名称专辑 1 和专辑 2。 我已经编写了一个以递归方式执行此操作的代码,这在文件夹数量较少但目录数量增加时才有效。
public void getImageFoldes(String filepath){
String albumpath;
File file = new File(filepath);
File[] files = file.listFiles();
for (int fileInList = 0; fileInList < files.length; fileInList++)
{
File filename;
filename =files[fileInList];
if(filename.isHidden()|| filename.toString().startsWith("."))
return;
if (filename.isDirectory()){
albumpath = filename.toString();
String[] split;
String title;
split= albumpath.split("/");
title=split[split.length-1];
result = new thumbnailResults();
result.setTitle(title);
result.setPath(albumpath);
result.setIsLocal(true);
//result.setCreated("05-06-2011");
getImageFoldes(filename.toString());
}
else{
if (files.length !=0)
{
//if File is the image file then store the album name
if ((files[fileInList].toString()).contains(".png")||
(files[fileInList].toString()).contains(".jpg")||
(files[fileInList].toString()).contains(".jpeg")){
if (!results.contains(result)){
result.setUri(Uri.parse(files[fileInList].getPath()));
results.add(result);
myadapter.notifyDataSetChanged();
}
}
}
}
}
}
【问题讨论】: