就是无法获取文件路径了
推荐在Android11及以上版本使用
Storage Access Framework (SAF)
操作文件
注意,只可以在Android11及以上版本中使用
* Android 11 及以上选择文件导出
private
static
final
int
REQUEST_CODE_ANDROID_11_OR_HIGHER_FILE_SELECT_FOR_OUTPUT
=
5
;
* 文件后缀
private
static
final
String POSTFIX
=
".xlsx"
;
.
.
.
* Android11及以上文件选择
private
void
android11OrHigherFileSelect
(
)
{
Intent intent
=
new
Intent
(
Intent
.
ACTION_CREATE_DOCUMENT
)
;
intent
.
addCategory
(
Intent
.
CATEGORY_OPENABLE
)
;
intent
.
setType
(
"application/xlsx"
)
;
String time
=
TimeUtils
.
date2String
(
new
Date
(
)
,
"yyyy-MM-dd HH:mm:ss"
)
;
intent
.
putExtra
(
Intent
.
EXTRA_TITLE
,
"新文件"
+
time
+
POSTFIX
)
;
startActivityForResult
(
intent
,
REQUEST_CODE_ANDROID_11_OR_HIGHER_FILE_SELECT_FOR_OUTPUT
)
;
@Override
public
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
;
if
(
resultCode
==
RESULT_OK
&&
data
!=
null
)
{
if
(
requestCode
==
REQUEST_CODE_ANDROID_11_OR_HIGHER_FILE_SELECT_FOR_OUTPUT
)
{
Uri uri
=
data
.
getData
(
)
;
File file
=
com
.
blankj
.
utilcode
.
util
.
UriUtils
.
uri2File
(
uri
)
;
doDataOutput
(
file
.
getPath
(
)
)
;
使用之前的方式进行文件存储会得到如下错误FileNotFoundException open failed: EPERM (Operation not permitted)就是无法获取文件路径了推荐在Android11及以上版本使用Storage Access Framework (SAF)操作文件注意,只可以在Android11及以上版本中使用/** * Android 11 及以上选择文件导出 */private static final int REQUEST_CODE_ANDRO
尝试解决:
原本保存路径:Environment.getExternal
Storage
PublicDirectory(Environment.DIRECTORY_DCIM) .getPath() + File.separator + SAVE_Folder;
看了资料后修改的路径:ContextCompat.getExternalFilesDirs(.
Android
10版本的小米10Pro、华为mate30、oppo手机测试都没问题,在红米
Android
11
上出现该问题,于是果断把小米10Pro升级为
Android
11
系统进行调试。
本以为是
Android
11
分区所导致,才发现是
文件
命名不规范导致的。
tar cvf etcbak.tar etc/ 打包一个tar
tar xvf etcbak.tar 解开一个tar
tar cvzf etcbak.tar.gz etc/ 打包压缩一个 tar
tar zxvf etcbak.tar.gz 解压一个tar
z:代表的是压缩
c:代表的是打包
x:代表的是解压
v:代表的是过程
f:代...
Tar(Ta
pe
ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将
文件
打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统
中
使用最广泛的命令,用于归档多个
文件
或目录到单个归档
文件
中
,并且归档
文件
可以进一步使用 gzip
或者 bzip2 等技术进行压缩。换言之,tar 命令也可以用于备份:先是归档多个
文件
和目录到一个单独的 tar
文件
或归档
ocket
failed
:
EPERM
(
Operation
not
pe
rmi
tted
)错误
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:studio64,Java
作者:陈显其
撰写时间:2020年5月27日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Android
-杰里-OkHttp
Jerry只是
Android
中
OKHTTP的实用工具,它具有FLUENT APIS 。
从ok-http 3开始,square已更改了许多API,因此我仍在开发新版本的Jerry。 我待会儿给一个样品。
这很简单! 我也在我的书房里给了一个枫糖。
RequestParams params = new RequestParams();
params.put("key", "value");
try {
params.put("fileKey",new File("filepath"));
} catch (
FileNotFoundException
e) {
e.printStackTrace();
Exception in thread "main" java.io.
FileNotFoundException
: C:\$360Section (拒绝访问。) 意思是在线程 "main"
中
出现了异常,该异常是 java.io.
FileNotFoundException
类型,表示无法找到
文件
C:\$360Section,并提示拒绝访问。
这通常意味着你尝试访问的
文件
在系统
中
不存在,或者你没有足够的权限访问该
文件
。你需要检查
文件
的路径是否正确,或者尝试以具有更高权限的用户身份运行你的程序。