【代码】Android|安卓11及以上版本asserts和外部文件存在性检查详解

省流版

作者版本:Android 11及以上

主要是发现网上没有完整的、能跑的代码,不知道怎么回事,GPT给我重写的。我只能保证这个代码尊嘟能跑,不像其他的缺胳膊少腿的。

asserts

贴一下结果:

  boolean isAssertFileExists(String filename) {
      AssetManager assetManager = getActivity().getAssets();
      try {
          String[] files = assetManager.list("");
          for (String file : files) {
              if (file.equals(filename)) {
                  return true;
              }
          }
      } catch (IOException e) {
          e.printStackTrace();
      }
      return false;
  }

需要引入的头文件:

import java.io.IOException;
import android.content.res.AssetManager;

可以看到能正常判断:
在这里插入图片描述

其他外部文件或者data下的文件

如果是常规文件只需要用new File(filepath).exists()就行了。写成函数如下:

  boolean checkFileExists(String dirname, String filename) {
    File file = new File(dirname, filename);
    return file.exists();
  }

有个人写了但是他那个代码没有getActivity()导致getAssets没定义,见android判断asses文件是否存在

如果找不到自己的软件包存的文件的路径,可以看看这篇博客Android 保存文件路径方法

详细解释版

Android 11及以上版本文件存在性检查详解

在Android开发中,检查文件是否存在是一个常见的需求。特别是在处理如assets文件夹中的资源文件或其他外部文件时,确保文件的可用性至关重要。以下是在Android 11及以上版本中如何检查文件是否存在的两种方法。

方法一:检查assets文件夹中的文件

assets文件夹是Android项目中用于存放原始文件的特殊目录。检查assets中的文件是否存在需要使用AssetManager类。以下是一个示例函数,该函数接受一个文件名作为参数,并返回一个布尔值表示文件是否存在:

import java.io.IOException;
import android.content.res.AssetManager;

public boolean isAssertFileExists(String filename) {
    AssetManager assetManager = getActivity().getAssets();
    try {
        String[] files = assetManager.list("");
        for (String file : files) {
            if (file.equals(filename)) {
                return true;
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return false;
}

方法二:检查其他外部文件或data目录下的文件

对于不在assets文件夹中的文件,如存储在外部存储或应用的data目录下的文件,可以使用File类来检查文件是否存在。以下是一个示例函数,该函数接受目录和文件名作为参数,并返回一个布尔值表示文件是否存在:

public boolean checkFileExists(String dirname, String filename) {
    File file = new File(dirname, filename);
    return file.exists();
}

注意事项

  • 当使用getActivity().getAssets()时,请确保您处于Fragment或Activity的上下文中,否则getActivity()方法将不可用。
  • 在处理文件和目录路径时,请确保您具有正确的文件权限和访问权限。

额外资源

希望这些信息能帮助您在Android开发中更有效地处理文件存在性检查的问题。

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/136439539
。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shandianchengzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值