android - 如何检查外部存储中是否存在文件?

标签 android android-external-storage

<分区>

如何检查外部存储中是否存在文件?

我想播放来自外部存储的视频,如果该文件存在于其中,否则从服务器下载。 我试过了

if ((Environment.getExternalStorageDirectory().getPath().contains(mVideo.getCaption() + ".mp4"))) {
    videoPath = Environment.getExternalStorageDirectory().getPath() + "/" + mVideo.getCaption() + ".mp4";
    Toast.makeText(getActivity(), "Playing from External storage" + videoPath, Toast.LENGTH_LONG).show();
} else {
    videoPath = URLs.VIDEO_URL.replace("<fixme>", mVideo.getId());
    Toast.makeText(getActivity(), "Playing from Server" + videoPath, Toast.LENGTH_LONG).show();
}

上面代码的问题是它总是从服务器播放视频。

我也试过-

if ((Environment.getExternalStorageDirectory().getPath() + "/" + mVideo.getCaption() + ".mp4")!=null) {
    videoPath = Environment.getExternalStorageDirectory().getPath() + "/" + mVideo.getCaption() + ".mp4";
    Toast.makeText(getActivity(), "Playing from External storage" + videoPath, Toast.LENGTH_LONG).show();
} else {
    videoPath = URLs.VIDEO_URL.replace("<fixme>", mVideo.getId());
    Toast.makeText(getActivity(), "Playing from Server" + videoPath, Toast.LENGTH_LONG).show();
}

问题是它总是从外部存储播放视频。

最佳答案

你只需要创建一个对象 File并将您的路径传递给 File对象并只使用方法 exists() .

String mFilePath = Environment.getExternalStorageDirectory().getPath().contains(mVideo.getCaption() + ".mp4");
File mFile = new File(mFilePath);
if (mFile !=null && mFile.exists()) {
    Toast.makeText(getActivity(), "Playing from External storage" + mFilePath, Toast.LENGTH_LONG).show();
}

关于android - 如何检查外部存储中是否存在文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28577474/

相关文章:

安卓。如何从不同的 Activity 中获取上下文

java - Android 上的可移植 JDBC 与 SQLite

java - 外部存储并不指大容量内部 SD 卡

android - ES 文件资源管理器可以读取和写入外部 sd 购物车,但我的程序不能? (安卓奇巧)

java - "file:///"和 "file://"之间的区别

android - 如何在 ImageView 上添加第二张图片

android - 发送数据包时 XMPP MessageEventManager 出错?

android - 当前(2019 年 10 月中旬)在 Android 应用程序中包含实现 Compat 依赖项的方式是什么?

Android 删除 SQL 数据库

android - 在 Android API 29 中访问外部存储