Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
f5b2364c
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
f5b2364c
编写于
6月 01, 2023
作者:
O
openharmony_ci
提交者:
Gitee
6月 01, 2023
浏览文件
操作
浏览文件
下载
差异文件
!19004 picker 开发指南增加权限描述和修改示例代码
Merge pull request !19004 from 胡伟奇/file-management
上级
52cd87f6
f6e1c2f6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
87 addition
and
78 deletion
+87
-78
zh-cn/application-dev/file-management/save-user-file.md
zh-cn/application-dev/file-management/save-user-file.md
+34
-32
zh-cn/application-dev/file-management/select-user-file.md
zh-cn/application-dev/file-management/select-user-file.md
+53
-46
未找到文件。
zh-cn/application-dev/file-management/save-user-file.md
浏览文件 @
f5b2364c
...
...
@@ -7,10 +7,11 @@
## 保存图片或视频类文件
1.
导入选择器模块。
1.
导入选择器模块
和文件管理模块
。
```
ts
import
picker
from
'
@ohos.file.picker
'
;
import
fs
from
'
@ohos.file.fs
'
;
```
2.
创建图库保存选项实例。
...
...
@@ -20,23 +21,25 @@
photoSaveOptions
.
newFileNames
=
[
"
PhotoViewPicker01.jpg
"
];
// 保存文件名(可选)
```
3.
创建图库选择器实例,调用
[
save()
](
../reference/apis/js-apis-file-picker.md#save
)
接口拉起FilePicker界面进行文件保存。
用户选择目标文件夹,用户选择与文件类型相对应的文件夹,即可完成文件保存操作。保存成功后,返回保存文档的URI。
3.
创建图库选择器实例,调用
[
save()
](
../reference/apis/js-apis-file-picker.md#save
)
接口拉起FilePicker界面进行文件保存。用户选择目标文件夹,用户选择与文件类型相对应的文件夹,即可完成文件保存操作。保存成功后,返回保存文档的URI。
</br>
save返回的URI权限是读写权限,可以根据结果集中URI进行文件读写等操作。注意不能在picker的回调里直接使用此URI进行打开文件操作,需要定义一个全局变量保存URI,使用类似一个按钮去触发打开文件。
```
ts
let
uri
=
null
;
let
URI
=
null
;
const
photoViewPicker
=
new
picker
.
PhotoViewPicker
();
photoViewPicker
.
save
(
photoSaveOptions
).
then
((
photoSaveResult
)
=>
{
uri
=
photoSaveResult
[
0
];
URI
=
photoSaveResult
[
0
];
console
.
info
(
'
photoViewPicker.save to file succeed and URI is:
'
+
URI
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Invoke
documentPicker.select
failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke
photoViewPicker.save
failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
```
4.
待界面从FilePicker返回后,
在其他函数中使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过uri打开这个文件得到fd
。
4.
待界面从FilePicker返回后,
再通过类似一个按钮调用其他函数,使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过URI打开这个文件得到fd。这里需要注意接口权限参数是fs.OpenMode.READ_WRITE
。
```
ts
let
file
=
fs
.
openSync
(
uri
,
fs
.
OpenMode
.
READ_WRITE
);
let
file
=
fs
.
openSync
(
URI
,
fs
.
OpenMode
.
READ_WRITE
);
console
.
info
(
'
file fd:
'
+
file
.
fd
);
```
...
...
@@ -50,10 +53,11 @@
## 保存文档类文件
1.
导入选择器模块。
1.
导入选择器模块
和文件管理模块
。
```
ts
import
picker
from
'
@ohos.file.picker
'
;
import
fs
from
'
@ohos.file.fs
'
;
```
2.
创建文档保存选项实例。
...
...
@@ -63,27 +67,25 @@
documentSaveOptions
.
newFileNames
=
[
"
DocumentViewPicker01.txt
"
];
// 保存文件名(可选)
```
3.
创建文档选择器实例。调用
[
save()
](
../reference/apis/js-apis-file-picker.md#save-3
)
接口拉起FilePicker界面进行文件保存。
用户选择目标文件夹,用户选择与文件类型相对应的文件夹,即可完成文件保存操作。保存成功后,返回保存文档的URI。
> **说明:**
>
> 目前DocumentSelectOptions不支持参数配置,默认可以选择所有类型的用户文件。
3.
创建文档选择器实例。调用
[
save()
](
../reference/apis/js-apis-file-picker.md#save-3
)
接口拉起FilePicker界面进行文件保存。用户选择目标文件夹,用户选择与文件类型相对应的文件夹,即可完成文件保存操作。保存成功后,返回保存文档的URI。
</br>
save返回的URI权限是读写权限,可以根据结果集中URI进行文件读写等操作。注意不能在picker的回调里直接使用此URI进行打开文件操作,需要定义一个全局变量保存URI,使用类似一个按钮去触发打开文件。
```
ts
let
uri
=
null
;
let
URI
=
null
;
const
documentViewPicker
=
new
picker
.
DocumentViewPicker
();
// 创建文件选择器实例
documentViewPicker
.
save
(
documentSaveOptions
).
then
((
documentSaveResult
)
=>
{
uri
=
documentSaveResult
[
0
];
URI
=
documentSaveResult
[
0
];
console
.
info
(
'
documentViewPicker.save to file succeed and URI is:
'
+
URI
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Invoke documentPicker.save failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke document
View
Picker.save failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
```
4.
待界面从FilePicker返回后,
在其他函数中使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过uri打开这个文件得到fd
。
4.
待界面从FilePicker返回后,
再通过类似一个按钮调用其他函数,使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过URI打开这个文件得到fd。这里需要注意接口权限参数是fs.OpenMode.READ_WRITE
。
```
ts
let
file
=
fs
.
openSync
(
uri
,
fs
.
OpenMode
.
READ_WRITE
);
let
file
=
fs
.
openSync
(
URI
,
fs
.
OpenMode
.
READ_WRITE
);
console
.
info
(
'
file fd:
'
+
file
.
fd
);
```
...
...
@@ -97,10 +99,11 @@
## 保存音频类文件
1.
导入选择器模块。
1.
导入选择器模块
和文件管理模块
。
```
ts
import
picker
from
'
@ohos.file.picker
'
;
import
fs
from
'
@ohos.file.fs
'
;
```
2.
创建音频保存选项实例。
...
...
@@ -110,26 +113,25 @@
audioSaveOptions
.
newFileNames
=
[
'
AudioViewPicker01.mp3
'
];
// 保存文件名(可选)
```
3.
创建音频选择器实例。调用
[
save()
](
../reference/apis/js-apis-file-picker.md#save-6
)
接口拉起FilePicker界面进行文件保存。
用户选择目标文件夹,用户选择与文件类型相对应的文件夹,即可完成文件保存操作。保存成功后,返回保存文档的URI。
> **说明:**
>
> 目前AudioSelectOptions不支持参数配置,默认可以选择所有类型的用户文件。
3.
创建音频选择器实例。调用
[
save()
](
../reference/apis/js-apis-file-picker.md#save-6
)
接口拉起FilePicker界面进行文件保存。用户选择目标文件夹,用户选择与文件类型相对应的文件夹,即可完成文件保存操作。保存成功后,返回保存文档的URI。
</br>
save返回的URI权限是读写权限,可以根据结果集中URI进行文件读写等操作。注意不能在picker的回调里直接使用此URI进行打开文件操作,需要定义一个全局变量保存URI,使用类似一个按钮去触发打开文件。
```
ts
let
uri
=
null
;
let
URI
=
null
;
const
audioViewPicker
=
new
picker
.
AudioViewPicker
();
audioViewPicker
.
save
(
audioSaveOptions
).
then
((
audioSelectResult
)
=>
{
uri
=
audioSelectResult
[
0
];
URI
=
audioSelectResult
[
0
];
console
.
info
(
'
audioViewPicker.save to file succeed and URI is:
'
+
URI
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Invoke audio
Picker.select
failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke audio
ViewPicker.save
failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
```
4.
待界面从FilePicker返回后,
在其他函数中使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过uri打开这个文件得到fd
。
4.
待界面从FilePicker返回后,
再通过类似一个按钮调用其他函数,使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过URI打开这个文件得到fd。这里需要注意接口权限参数是fs.OpenMode.READ_WRITE
。
```
ts
let
file
=
fs
.
openSync
(
uri
,
fs
.
OpenMode
.
READ_WRITE
);
let
file
=
fs
.
openSync
(
URI
,
fs
.
OpenMode
.
READ_WRITE
);
console
.
info
(
'
file fd:
'
+
file
.
fd
);
```
...
...
zh-cn/application-dev/file-management/select-user-file.md
浏览文件 @
f5b2364c
...
...
@@ -12,10 +12,11 @@
## 选择图片或视频类文件
1.
导入选择器模块。
1.
导入选择器模块
和文件管理模块
。
```
ts
import
picker
from
'
@ohos.file.picker
'
;
import
fs
from
'
@ohos.file.fs
'
;
```
2.
创建图库选择选项实例。
...
...
@@ -32,41 +33,44 @@
photoSelectOptions
.
maxSelectNumber
=
5
;
// 选择媒体文件的最大数目
```
4.
创建图库选择器实例,调用
[
select()
](
../reference/apis/js-apis-file-picker.md#select
)
接口拉起FilePicker界面进行文件选择。
文件选择成功后,返回
[
PhotoSelectResult
](
../reference/apis/js-apis-file-picker.md#photoselectresult
)
结果集,可以根据结果集中URI进行文件读取等操作
。
4.
创建图库选择器实例,调用
[
select()
](
../reference/apis/js-apis-file-picker.md#select
)
接口拉起FilePicker界面进行文件选择。
文件选择成功后,返回
[
PhotoSelectResult
](
../reference/apis/js-apis-file-picker.md#photoselectresult
)
结果集。
</br>
select返回的URI权限是只读权限,可以根据结果集中URI进行读取文件数据操作。注意不能在picker的回调里直接使用此URI进行打开文件操作,需要定义一个全局变量保存URI,使用类似一个按钮去触发打开文件
。
```
ts
let
uri
=
null
;
const
photoPicker
=
new
picker
.
PhotoViewPicker
();
photoPicker
.
select
(
photoSelectOptions
).
then
((
photoSelectResult
)
=>
{
uri
=
photoSelectResult
.
photoUris
[
0
];
let
URI
=
null
;
const
photoViewPicker
=
new
picker
.
PhotoViewPicker
();
photoViewPicker
.
select
(
photoSelectOptions
).
then
((
photoSelectResult
)
=>
{
URI
=
photoSelectResult
.
photoUris
[
0
];
console
.
info
(
'
photoViewPicker.select to file succeed and URI is:
'
+
URI
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Invoke photoPicker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke photo
View
Picker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
```
5.
待界面从FilePicker返回后,
在其他函数中使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过uri打开这个文件得到fd
。
5.
待界面从FilePicker返回后,
再通过类似一个按钮调用其他函数,使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过URI打开这个文件得到fd。这里需要注意接口权限参数是fs.OpenMode.READ_ONLY
。
```
ts
let
file
=
fs
.
openSync
(
uri
,
fs
.
OpenMode
.
READ_WRITE
);
let
file
=
fs
.
openSync
(
URI
,
fs
.
OpenMode
.
READ_ONLY
);
console
.
info
(
'
file fd:
'
+
file
.
fd
);
```
6.
通过fd使用
[
fs.
writeSync
](
../reference/apis/js-apis-file-fs.md#writesync
)
接口对这个文件进行编辑修改,编辑修改
完成后关闭fd。
6.
通过fd使用
[
fs.
readSync
](
../reference/apis/js-apis-file-fs.md#readsync
)
接口读取这个文件内的数据,读取
完成后关闭fd。
```
ts
let
writeLen
=
fs
.
writeSync
(
file
.
fd
,
'
hello, world
'
);
console
.
info
(
'
write data to file succeed and size is:
'
+
writeLen
);
let
buffer
=
new
ArrayBuffer
(
4096
);
let
readLen
=
fs
.
readSync
(
file
.
fd
,
buffer
);
console
.
info
(
'
readSync data to file succeed and buffer size is:
'
+
readLen
);
fs
.
closeSync
(
file
);
```
## 选择文档类文件
1.
导入选择器模块。
1.
导入选择器模块
和文件管理模块
。
```
ts
import
picker
from
'
@ohos.file.picker
'
;
import
fs
from
'
@ohos.file.fs
'
;
```
2.
创建文档选择选项实例。
...
...
@@ -75,23 +79,24 @@
const
documentSelectOptions
=
new
picker
.
DocumentSelectOptions
();
```
3.
创建文档选择器实例。调用
[
select()
](
../reference/apis/js-apis-file-picker.md#select-3
)
接口拉起FilePicker界面进行文件选择。
文件选择成功后,返回被选中文档的URI结果集。开发者可以根据结果集中URI做进一步的处理
。
例如通过
[
文件管理接口
](
../reference/apis/js-apis-file-fs.md
)
根据URI获取部分文件属性信息,比如文件大小、访问时间、修改时间等。如有获取文件名称需求,请暂时使用
[
startAbilityForResult
](
../../application-dev/application-models/uiability-intra-device-interaction.md
)
获取。
3.
创建文档选择器实例。调用
[
select()
](
../reference/apis/js-apis-file-picker.md#select-3
)
接口拉起FilePicker界面进行文件选择。
文件选择成功后,返回被选中文档的URI结果集。
</br>
select返回的URI权限是只读权限,开发者可以根据结果集中URI做进一步的处理。注意不能在picker的回调里直接使用此URI进行打开文件操作,需要定义一个全局变量保存URI,使用类似一个按钮去触发打开文件
。
</br>
例如通过
[
文件管理接口
](
../reference/apis/js-apis-file-fs.md
)
根据URI获取部分文件属性信息,比如文件大小、访问时间、修改时间等。如有获取文件名称需求,请暂时使用
[
startAbilityForResult
](
../../application-dev/application-models/uiability-intra-device-interaction.md
)
获取。
> **说明:**
>
> 目前DocumentSelectOptions不支持参数配置,默认可以选择所有类型的用户文件。
```
ts
let
uri
=
null
;
let
URI
=
null
;
const
documentViewPicker
=
new
picker
.
DocumentViewPicker
();
// 创建文件选择器实例
documentViewPicker
.
select
(
documentSelectOptions
).
then
((
documentSelectResult
)
=>
{
uri
=
documentSelectResult
[
0
];
URI
=
documentSelectResult
[
0
];
console
.
info
(
'
documentViewPicker.select to file succeed and URI is:
'
+
URI
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Invoke documentPicker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke document
View
Picker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
```
...
...
@@ -109,7 +114,7 @@
try
{
let
result
=
await
context
.
startAbilityForResult
(
config
,
{
windowMode
:
1
});
if
(
result
.
resultCode
!==
0
)
{
console
.
error
(
`
Document
Picker.select failed, code is
${
result
.
resultCode
}
, message is
${
result
.
want
.
parameters
.
message
}
`
);
console
.
error
(
`
documentView
Picker.select failed, code is
${
result
.
resultCode
}
, message is
${
result
.
want
.
parameters
.
message
}
`
);
return
;
}
// 获取到文档文件的URI
...
...
@@ -117,34 +122,34 @@
// 获取到文档文件的文件名称
let
file_name_list
=
result
.
want
.
parameters
.
file_name_list
;
}
catch
(
err
)
{
console
.
error
(
`Invoke documentPicker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke document
View
Picker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
}
```
4.
待界面从FilePicker返回后,
在其他函数中使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过uri打开这个文件得到fd
。
4.
待界面从FilePicker返回后,
再通过类似一个按钮调用其他函数,使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过URI打开这个文件得到fd。这里需要注意接口权限参数是fs.OpenMode.READ_ONLY
。
```
ts
let
file
=
fs
.
openSync
(
uri
,
fs
.
OpenMode
.
READ_WRITE
);
let
file
=
fs
.
openSync
(
URI
,
fs
.
OpenMode
.
READ_ONLY
);
console
.
info
(
'
file fd:
'
+
file
.
fd
);
```
5.
通过fd使用
[
fs.readSync
](
../reference/apis/js-apis-file-fs.md#readsync
)
接口
对这个文件进行读取
数据,读取完成后关闭fd。
5.
通过fd使用
[
fs.readSync
](
../reference/apis/js-apis-file-fs.md#readsync
)
接口
读取这个文件内的
数据,读取完成后关闭fd。
```
ts
let
file
=
fs
.
openSync
(
uri
,
fs
.
OpenMode
.
READ_WRITE
);
let
buf
=
new
ArrayBuffer
(
4096
);
let
num
=
fs
.
readSync
(
file
.
fd
,
buf
);
console
.
info
(
'
read data to file succeed and size is:
'
+
num
);
let
buffer
=
new
ArrayBuffer
(
4096
);
let
readLen
=
fs
.
readSync
(
file
.
fd
,
buffer
);
console
.
info
(
'
readSync data to file succeed and buffer size is:
'
+
readLen
);
fs
.
closeSync
(
file
);
```
## 选择音频类文件
1.
导入选择器模块。
1.
导入选择器模块
和文件管理模块
。
```
ts
import
picker
from
'
@ohos.file.picker
'
;
import
fs
from
'
@ohos.file.fs
'
;
```
2.
创建音频选择选项实例。
...
...
@@ -153,37 +158,39 @@
const
audioSelectOptions
=
new
picker
.
AudioSelectOptions
();
```
3.
创建音频选择器实例。调用
[
select()
](
../reference/apis/js-apis-file-picker.md#select-6
)
接口拉起FilePicker界面进行文件选择。
文件选择成功后,返回被选中音频的URI结果集。开发者可以根据结果集中URI做进一步的处理
。
例如通过
[
文件管理接口
](
../reference/apis/js-apis-file-fs.md
)
根据URI拿到音频资源的文件句柄(FD),再配合媒体服务实现音频播放的开发,具体请参考
[
音频播放开发指导
](
../media/audio-playback-overview.md
)
。
3.
创建音频选择器实例。调用
[
select()
](
../reference/apis/js-apis-file-picker.md#select-6
)
接口拉起FilePicker界面进行文件选择。
文件选择成功后,返回被选中音频的URI结果集。
</br>
select返回的URI权限是只读权限,开发者可以根据结果集中URI做读取文件数据操作。注意不能在 picker的回调里直接使用此URI进行打开文件操作,需要定义一个全局变量保存URI,使用类似一个按钮去触发打开文件
。
</br>
例如通过
[
文件管理接口
](
../reference/apis/js-apis-file-fs.md
)
根据URI拿到音频资源的文件句柄(FD),再配合媒体服务实现音频播放的开发,具体请参考
[
音频播放开发指导
](
../media/audio-playback-overview.md
)
。
> **说明:**
>
> 目前AudioSelectOptions不支持参数配置,默认可以选择所有类型的用户文件。
```
ts
let
uri
=
null
;
let
URI
=
null
;
const
audioViewPicker
=
new
picker
.
AudioViewPicker
();
audioViewPicker
.
select
(
audioSelectOptions
).
then
(
audioSelectResult
=>
{
uri
=
audioSelectOptions
[
0
];
URI
=
audioSelectOptions
[
0
];
console
.
info
(
'
audioViewPicker.select to file succeed and URI is:
'
+
URI
);
}).
catch
((
err
)
=>
{
console
.
error
(
`Invoke audioPicker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
console
.
error
(
`Invoke audio
View
Picker.select failed, code is
${
err
.
code
}
, message is
${
err
.
message
}
`
);
})
```
4.
待界面从FilePicker返回后,
在其他函数中使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过uri打开这个文件得到fd
。
4.
待界面从FilePicker返回后,
再通过类似一个按钮调用其他函数,使用
[
fs.openSync
](
../reference/apis/js-apis-file-fs.md#fsopensync
)
接口,通过URI打开这个文件得到fd。这里需要注意接口权限参数是fs.OpenMode.READ_ONLY
。
```
ts
let
file
=
fs
.
openSync
(
uri
,
fs
.
OpenMode
.
READ_WRITE
);
let
file
=
fs
.
openSync
(
URI
,
fs
.
OpenMode
.
READ_ONLY
);
console
.
info
(
'
file fd:
'
+
file
.
fd
);
```
5.
通过fd使用
[
fs.
writeSync
](
../reference/apis/js-apis-file-fs.md#writesync
)
接口对这个文件进行编辑修改,编辑修改
完成后关闭fd。
5.
通过fd使用
[
fs.
readSync
](
../reference/apis/js-apis-file-fs.md#readsync
)
接口读取这个文件内的数据,读取
完成后关闭fd。
```
ts
let
writeLen
=
fs
.
writeSync
(
file
.
fd
,
'
hello, world
'
);
console
.
info
(
'
write data to file succeed and size is:
'
+
writeLen
);
let
buffer
=
new
ArrayBuffer
(
4096
);
let
readLen
=
fs
.
readSync
(
file
.
fd
,
buffer
);
console
.
info
(
'
readSync data to file succeed and buffer size is:
'
+
readLen
);
fs
.
closeSync
(
file
);
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录