public void ToSearchFiles(File file) {
//定义一个File文件数组,用来存放 /sdcard 目录下的文件或文件夹
File[] the_Files = file.listFiles() ;
//通过遍历所有文件和文件夹
for (File tempF : the_Files) {
if (tempF.isDirectory())
ToSearchFiles(tempF);
else
{
try {
//是文件,进行比较,如果文件名称中包含输入搜索Key,则返回大于-1的值
if (tempF.getName().indexOf(theKey_formInput) > -1) {
//获取符合条件文件的路径,进行累加
path +="\n"+ tempF.getPath();
//显示结果的TextView显示信息和搜索到的路径
show_Result.setText(info + path);
}
} catch (Exception e) {
// TODO: handle exception
//如果路径找不到,提示出错
Toast.makeText(this, getString(R.string.pathError),Toast.LENGTH_SHORT).show();
}
}
}if (tempF.isDirectory())
ToSearchFiles(tempF);
这个有问题,一加上去程序就出错
//定义一个File文件数组,用来存放 /sdcard 目录下的文件或文件夹
File[] the_Files = file.listFiles() ;
//通过遍历所有文件和文件夹
for (File tempF : the_Files) {
if (tempF.isDirectory())
ToSearchFiles(tempF);
else
{
try {
//是文件,进行比较,如果文件名称中包含输入搜索Key,则返回大于-1的值
if (tempF.getName().indexOf(theKey_formInput) > -1) {
//获取符合条件文件的路径,进行累加
path +="\n"+ tempF.getPath();
//显示结果的TextView显示信息和搜索到的路径
show_Result.setText(info + path);
}
} catch (Exception e) {
// TODO: handle exception
//如果路径找不到,提示出错
Toast.makeText(this, getString(R.string.pathError),Toast.LENGTH_SHORT).show();
}
}
}if (tempF.isDirectory())
ToSearchFiles(tempF);
这个有问题,一加上去程序就出错
加一个
if(the_Files != null)
{
然后把你那段for循环放在这里
}搜索文件最好要用Thread来实现,否则可能会程序直接卡到崩溃
这个还是不要放for循环里的好。
查找sd卡里是否有需要的文件,如果找到就显示出路径,但这段程序有问题,只能找到sd卡主目录下的文件,却不能找到文件夹里面的