赞
踩
最近在开发某个app时,客户要求把导出的excel文件保存在根目录上,程序报错“"targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径。请更改为应用运行路径!”,解决方案如下:
- <script module="download" lang="renderjs">
- //native.js创建文件及删除文件
- let dir = '/图注';
- let pathUrl = '/图注/test.txt';
- // #ifdef APP-PLUS
- let environment = plus.android.importClass("android.os.Environment");
- var sdRoot = environment.getExternalStorageDirectory(); //文件夹根目录
- var File = plus.android.importClass("java.io.File");
- var BufferedReader = plus.android.importClass("java.io.BufferedReader");
- var FileReader = plus.android.importClass("java.io.FileReader");
- var FileWriter = plus.android.importClass("java.io.FileWriter");
- // #endif
- export default {
- data() {
- return {}
- },
- mounted() {},
- methods: {
- whiteFile(val) {
- let _this = this
- let res = val.template // 保存内容
- // #ifdef APP-PLUS
- res = res + ',';
- try {
- //不加根目录创建文件(即用相对地址)的话directory.exists()这个判断一值都是false
- console.log(sdRoot + dir)
- let directory = new File(sdRoot + dir);
- if (!directory.exists()) {
- console.log('创建目录')
- directory.mkdirs(); //创建目录
- }
- if (!directory.exists()) {
- console.log('创建目录失败')
- } else {
- console.log('创建目录成功')
- }
- pathUrl = val.fileName // 文件路径,注意和文件夹保持一致,从根目录开始
- console.log(sdRoot + pathUrl)
- let file = new File(sdRoot + pathUrl);
-
-
-
- console.log(file.exists())
- if (!file.exists()) {
- file.createNewFile(); //创建文件
- }
- let fos = new FileWriter(sdRoot + pathUrl, true);
- fos.write(res);
- fos.close();
- return true;
- } catch (e) {
- console.log(e);
- return false;
- }
- return false;
- //#endif
- }
- }
- }
- </script>

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。