/*
* searchFile 查找文件并加入到ArrayList 当中去
* @String keyword 查找的关键词
* @File filepath 查找的目录
* */
private void searchFile(String keyword,File filepath)
{
//判断SD卡是否存在
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED))
{
File[] files = filepath.listFiles();
if (files.length > 0)
{
for (File file : files)
{
if (file.isDirectory())
{
//如果目录可读就执行(一定要加,不然会挂掉)
if(file.canRead()){
searchFile(keyword,file); //如果是目录,递归查找
}
}
else {
//判断是文件,则进行文件名判断
try {
if (file.getName().indexOf(keyword) > -1||file.getName().indexOf(keyword.toUpperCase()) > -1)
{
rowItem = new HashMap<String, Object>();
rowItem.put("number", index); // 加入序列号
rowItem.put("bookName", file.getName());// 加入名称
rowItem.put("path", file.getPath()); // 加入路径
rowItem.put("size", file.length()); // 加入文件大小
bookList.add(rowItem);
index++;
}
} catch(Exception e) {
Toast.makeText(this,"查找发生错误", Toast.LENGTH_SHORT).show();
}
}
}
}
}
}