0

我在这里试过,但没有帮助。

我的文件名过滤器仅获取目录和 .txt 文件:

FilenameFilter filter = new FilenameFilter()
{
    public boolean accept(File dir, String name)
    {
        if (dir.isDirectory())
        {
            return true;
        }
        else
        {
            return dir.getName().endsWith(".txt");
        }
    }
};

我也试过 !dir.isFile()

将过滤器应用于文件和目录列表:

            CurDir = homeDir;
            dir = new File(homeDir);
            values = dir.list(filter);
            if (values == null)
            {
                Toast.makeText(this, "No Files/Folders", Toast.LENGTH_LONG).show();
            }
            else
            {
                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
                setListAdapter(adapter);
            }

homeDir 的值:

homeDir = Environment.getExternalStorageDirectory().toString();

它仍然显示 .png 和所有其他文件。

4

1 回答 1

2

传递的File dir是包含实际文件的目录,因此它始终是一个目录。您拥有的完整文件是 %dir%/%name%。我相信如果整个文件是一个目录,名称将是“/”或者可能为 null。

您还可以通过执行创建完整文件new File(dir, name);

于 2012-10-03T00:41:42.420 回答