Java 如何仅显示视频文件夹?

Java 如何仅显示视频文件夹?,java,android,Java,Android,我正在使用android应用程序,请告诉我,如何仅显示视频文件夹? 此代码显示设备中的所有文件夹,但我只想显示视频文件夹。怎么做 这是我的密码 public class MainActivity extends ListActivity { private List<String> listfile = new ArrayList<String>(); @RequiresApi(api = Build.VERSION_CODES.KITKAT)

我正在使用android应用程序,请告诉我,如何仅显示视频文件夹? 此代码显示设备中的所有文件夹,但我只想显示视频文件夹。怎么做

这是我的密码

public class MainActivity extends ListActivity {

    private List<String> listfile = new ArrayList<String>();

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      //  setContentView(R.layout.activity_main);

      File fileroot = new File(Environment.getExternalStorageDirectory().getAbsolutePath());

        File[] files = fileroot.listFiles();
        FileFilter fileFilter = new FileFilter() {
            public boolean accept(File file) {
                return file.isDirectory();
            }
        };

        files = fileroot.listFiles(fileFilter);
        System.out.println(files.length);

        if (files.length == 0) {
           //
        } else {
            for (int i = 0; i < files.length; i++) {

                listfile.add(files[i].getName());

            }
            ArrayAdapter <String> dis = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listfile);
            setListAdapter(dis);
        }
    }
}
public类MainActivity扩展了ListActivity{
private List listfile=new ArrayList();
@RequiresApi(api=Build.VERSION\u CODES.KITKAT)
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
File fileroot=新文件(Environment.getExternalStorageDirectory().getAbsolutePath());
File[]files=fileroot.listFiles();
FileFilter FileFilter=newfilefilter(){
公共布尔接受(文件){
返回文件.isDirectory();
}
};
files=fileroot.listFiles(fileFilter);
System.out.println(files.length);
如果(files.length==0){
//
}否则{
对于(int i=0;i
在Android中没有简单的方法可以做到这一点。假设特定设备上只有一个目录
videos/
,这是错误的。即使有,你也不能假设视频文件将存储在那里,而不是其他地方

如果你真的只想扫描一个目录,那么一个简单的方法是在应用程序首次启动时提示用户输入位置,并存储所选位置以备将来使用。事实上,许多处理媒体的android应用程序都采用了这种方法——尽管它们可能允许用户选择多个位置

如果您想列出视频文件,而不是特定目录的内容,那么方法是查询Android媒体商店。每当文件传输到设备时,都会(或应该)更新此存储。根据Android内置的各种检查方法,每个文件都带有各种属性的标签。现代Android版本在识别视频文件方面相当出色,尽管情况并非总是如此

要使用媒体存储,您需要在
ContentResolver
上查询特定的
上下文
,测试指示内容是视频的标志。然后迭代结果,提取所需的各种信息

老实说,我没有使用Android media store来播放视频,尽管我已经使用了Android media store来播放音频。我认为基本原则是一样的。我这里有一些音频查询的示例代码,如果有帮助的话:


您必须查看每个文件夹中是否包含视频文件。我认为视频可以位于任何文件夹中,不管目录名如何。因此,您必须检查每个文件夹中的视频文件格式。如果您得到一个或多个文件,则包含此文件夹,否则只需将其排除并移动到下一个文件夹。。