Android 我应该给出什么路径来列出来自外部和内部存储的文件?
我正在为android制作一个视频播放器,但我无法列出来自内部和外部存储器的所有视频 我使用了“/mnt/”和“/storage/”作为路径,但是“/mnt/”列出了所有的视频,即使是ads缓存视频,“/storage/”也没有列出内存中的视频。甚至Android 我应该给出什么路径来列出来自外部和内部存储的文件?,android,android-studio,Android,Android Studio,我正在为android制作一个视频播放器,但我无法列出来自内部和外部存储器的所有视频 我使用了“/mnt/”和“/storage/”作为路径,但是“/mnt/”列出了所有的视频,即使是ads缓存视频,“/storage/”也没有列出内存中的视频。甚至Environment.getExternalStorageDirectory().getAbsolutePath()也没有正确列出视频 directory = new File(Environment.getExternalStorageDirec
Environment.getExternalStorageDirectory().getAbsolutePath()
也没有正确列出视频
directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
private ArrayList<File> getFile(File directory)
{
File listFiles[] = directory.listFiles();
if(listFiles!=null && listFiles.length>0)
{
for(int i=0;i<listFiles.length;i++)
{
if(listFiles[i].isDirectory())
{
getFile(listFiles[i]);
}
else{
listPermission = false;
if(listFiles[i].getName().endsWith(".mp4") || listFiles[i].getName().endsWith(".mkv"))
{
for(int j=0;j<fileArrayList.size();j++)
{
if(fileArrayList.get(j).getName().equals(listFiles[i].getName()))
{
listPermission = true;
}
}
if(listPermission)
{
listPermission = false;
}else{
fileArrayList.add(listFiles[i]);
Set<File> set = new HashSet<>(fileArrayList);
fileArrayList.clear();
fileArrayList.addAll(set);
// Log.i("Files_Check", listFiles[i].getName());
}
}
}
}
}
return fileArrayList;
}
directory=新文件(Environment.getExternalStorageDirectory().getAbsolutePath());
私有ArrayList getFile(文件目录)
{
文件listFiles[]=目录.listFiles();
if(listFiles!=null&&listFiles.length>0)
{
对于(int i=0;i,使用MediaStore与我一起工作
private ArrayList<File> GetVideoFile()
{
ContentResolver contentResolver = getContext().getContentResolver();
Uri videoUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String sortOrder = MediaStore.Video.Media.DATE_MODIFIED+ " ASC";
Cursor cursor = contentResolver.query(videoUri,null,null,null,sortOrder);
try {
if (cursor != null && cursor.moveToFirst()) {
int videoPath = cursor.getColumnIndex(MediaStore.Video.Media.DATA);
do {
String path = cursor.getString(videoPath);
File file = new File(path);
fileArrayList.add(file);
} while (cursor.moveToNext());
}
}catch (Exception e)
{
Log.i("CursorHandleException", e.getMessage());
}
return fileArrayList;
}
private ArrayList GetVideoFile()
{
ContentResolver ContentResolver=getContext().getContentResolver();
Uri videoUri=MediaStore.Video.Media.EXTERNAL\u CONTENT\u Uri;
字符串sortOrder=MediaStore.Video.Media.DATE\u MODIFIED+“ASC”;
Cursor Cursor=contentResolver.query(videoUri,null,null,null,sortOrder);
试一试{
if(cursor!=null&&cursor.moveToFirst()){
int videoPath=cursor.getColumnIndex(MediaStore.Video.Media.DATA);
做{
字符串路径=cursor.getString(videoPath);
文件=新文件(路径);
添加(文件);
}while(cursor.moveToNext());
}
}捕获(例外e)
{
i(“CursorHandleException”,e.getMessage());
}
返回fileArrayList;
}
不要执行任何操作。查询MediaStore
。调出视频列表并在回收视图中显示它们。