android应用复制文件到u盘

刚开始觉得简单,不就是找到u盘路径,打开文件写入文件

 fun getUsbPath(): String? {
        val usbRoot = File("/mnt/media_rw")
        if (usbRoot.exists() && usbRoot.isDirectory()) {
            val usbFiles = usbRoot.listFiles()
            if (usbFiles != null && usbFiles.size > 0) {
                return usbFiles[0].absolutePath
            }
        }
        return ""
    }
    fun copyFileToUsb( sourcePath: String?, usbPath: String?):Int {
        val sourceFile = File(sourcePath,DB_NAME)
        try {
            val uPath = File(usbPath+"/Download")
            Log.d("validate", "DataMngActivity usbPath : $usbPath/Download")
            if (!uPath.exists()) {
                uPath.createNewFile() // 创建文件夹
            }
            val usbFile = File(usbPath+"/Download/"+DB_NAME)
            FileInputStream(sourceFile).use { fis ->
                FileOutputStream(usbFile).use { fos ->
                    val buffer = ByteArray(1024)
                    var length: Int
                    while (fis.read(buffer).also { length = it } > 0) {
                        fos.write(buffer, 0, length)
                    }
                    fos.getFD().sync();
                    return 0;
                }
            }
        } catch (e: IOException) {
            e.printStackTrace()
            // Handle exception
        }
        return 1;
    }

另外在配上权限啥的,谁知道不插u盘,其他系统文件路径可以,换了u盘报没权限,几次搜索发现android11后有些权限用法不管用了 

Runtime.getRuntime().exec("cp 也不行

后来发现一个能行的办法

 FireflyApi2.getInstance().execSuCmd("cp "+rootPath_Db+"/"+DB_NAME+" "+f+"/"+DB_NAME);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值