Android下载到本地 系统相机扫描到本地相册问题处理

1、申请文件读写权限(可自己写,可使用第三方)
2、在指定目录下创建一个.nomedia文件,注:是文件,不是文件夹
3、.nodedia文件创建好之后需要重启一下系统,之后再进相册就不会显示出该目录下的图片了

var path = Environment.getExternalStorageDirectory().absolutePath + "/zhongmu";//指定目录
                    
isFolderExists(path)//判断当前路径是否存在,不存在则创建
var file = File(path)
createNomediaFile(file)

/**
* 创建隐藏文件夹
* @param file
*/

 fun createNomediaFile(file: File) {
    val nodediaPath = file.absoluteFile.toString() + "/.nomedia"
    var nomediaFile = File(nodediaPath);
    if (!nomediaFile.exists()) {
        try {
            nomediaFile.createNewFile();
        } catch (e: IOException) {
            e.printStackTrace();
        }
    }
}

/* 判断当前路径是否存在,不存在就创建
* @param strFolder
* @return
*/

fun isFolderExists(strFolder: String): Boolean {
    var file = File(strFolder);
    if (!file.exists()) {
        if (file.mkdirs()) {
            return true;
        } else {
            return false;
        }
    }
    return false;
}

java
代码实现

  String path =     Environment.getExternalStorageDirectory().toString() + "/face";//指定目录

isFolderExists(path)//判断当前路径是否存在,不存在则创建,下面有源码提供
 File file = new File(path);
 createNomediaFile(file);

/**
* 判断当前路径是否存在,不存在就创建
* @param strFolder
* @return
*/

 public boolean isFolderExists(String strFolder) {
    File file = new File(strFolder);
    if (!file.exists()) {
        if (file.mkdirs()) {
            return true;
        } else {
            return false;
        }
    }
    return false;
}

/**
* 创建隐藏文件夹
* @param file
*/

          public void createNomediaFile(File file){
     String nodediaPath = file.getAbsoluteFile() + "/.nomedia";
    File nomediaFile = new File(nodediaPath);
    if (!nomediaFile.exists()){
        try {
            nomediaFile.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

两个重点
1、.nomedia是文件、文件、文件,不是文件夹。
2、.nomedia文件创建好之后重启系统才会生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值