【发布时间】:2012-07-08 08:48:53
【问题描述】:
我知道如何搜索文件,但使用特定路径,例如 /sdcard/picture/file。有没有办法搜索该特定文件。示例:搜索文件。然后应用程序将其定位在 /sdcard/picture 中。然后抹掉。
有什么帮助吗?谢谢(我知道如何擦除文件,但必须写入整个路径)
【问题讨论】:
我知道如何搜索文件,但使用特定路径,例如 /sdcard/picture/file。有没有办法搜索该特定文件。示例:搜索文件。然后应用程序将其定位在 /sdcard/picture 中。然后抹掉。
有什么帮助吗?谢谢(我知道如何擦除文件,但必须写入整个路径)
【问题讨论】:
您可以从外部存储/SD卡的根目录开始递归解决该问题。
一些未经测试的代码超出我的脑海(方法名称可能是错误的)
public File findFile(File dir, String name) {
File[] children = dir.listFiles();
for(File child : children) {
if(child.isDirectory()) {
File found = findFile(child, name);
if(found != null) return found;
} else {
if(name.equals(child.getName())) return child;
}
}
return null;
}
如果您想在 SD 卡上找到该文件名的所有次出现,则必须使用列表来收集和返回所有找到的匹配项。
【讨论】:
试试这个:
public class Test {
public static void main(String[] args) {
File root = new File("/sdcard/");
String fileName = "a.txt";
try {
boolean recursive = true;
Collection files = FileUtils.listFiles(root, null, recursive);
for (Iterator iterator = files.iterator(); iterator.hasNext();) {
File file = (File) iterator.next();
if (file.getName().equals(fileName))
System.out.println(file.getAbsolutePath());
file.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
【讨论】: