检查以某个字符串开头的文件数

时间:2012-03-23 15:40:21

标签: java android

我想在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。

有人可以帮忙吗?

4 个答案:

答案 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()获取当前目录的文件名。 您浏览文件数组,并使用

检查文件名是否包含“thisfile”
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