我想在SD卡根目录中检查以“thisfile”开头的文件,并返回int或字符串中的文件数。
例如,我的SD卡上有10个文件,名称如下:
thisfile1.txt
thisfile444.txt
thisfileffvdfv.txt
thisfilefdfvdfv.txt
thisfile4fvdfv.txt
thisfilefvdfvdf.txt
thisfiledfvdfvdfv.txt
thisfilefdvdfvdf.txt
thisfilewedwed.txt
thisfilewedwedfff.txt
对于这个例子,我希望我的代码为此返回10。
有人可以帮忙吗?
答案 0 :(得分:0)
File dir = new File(Environment.getExternalStorageDirectory());
int num=0;
String[] children = dir.list();
if (children == null) {
// Either dir does not exist or is not a directory
} else {
for (int i=0; i<children.length; i++) {
// Get filename of file or directory
String filename = children[i];
if(filename.startsWith("thisfile")
num++;
}
}
System.out.println("total number "+num);
答案 1 :(得分:0)
int numberOfFiles=0;
File dir = Environment.getExternalStorageDirectory();
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
if (children[i].startsWith("file")
numberOfFiles++;
}
答案 2 :(得分:0)
您可以:directory.list()
获取当前目录的文件名。
您浏览文件数组,并使用
String.contains(CharSequence cs)
每次包含方法返回true时,您会增加一个变量,该变量将是您在目录中的文件名中找到序列“thisfile”的次数
答案 3 :(得分:0)
使用fileNameFilter首先过滤掉文件:
class MyFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
return (name.startsWith("thisfile"));
}
在您的活动中使用:
private static final String MEDIA_PATH = new String("/sdcard/");
File home = new File(MEDIA_PATH);
int counter =home.listFiles(new MyFilter()).length