Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a7a1e403
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看板
未验证
提交
a7a1e403
编写于
11月 01, 2022
作者:
Z
zengyawen
提交者:
Gitee
11月 01, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/faqs/faqs-file-management.md.
Signed-off-by:
N
zengyawen
<
zengyawen1@huawei.com
>
上级
83e3e96c
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
59 addition
and
0 deletion
+59
-0
zh-cn/application-dev/faqs/faqs-file-management.md
zh-cn/application-dev/faqs/faqs-file-management.md
+59
-0
未找到文件。
zh-cn/application-dev/faqs/faqs-file-management.md
浏览文件 @
a7a1e403
# 文件管理开发常见问题
# 文件管理开发常见问题
## fileio.rmdir是递归删除吗?
适用于:OpenHarmony SDK 3.2.6.3版本,API9 Stage模型
是递归删除。
## 如何实现如果文件不存在则创建文件
适用于:OpenHarmony SDK 3.2.6.3版本,API9 Stage模型
可以通过调用函数fileio.open(filePath, 0o100, 0o666)来实现,第二个参数0o100表示若文件不存在,则创建文件。使用该选项时必须指定第三个参数 mode。
## 使用fileio进行文件复制,传入沙箱路径报错call fail callback fail, code: 202, data: json arguments illegal)
适用于:OpenHarmony SDK 3.2.6.3版本,API9 Stage模型
使用fileio模块进行文件复制时,文件路径前缀中不能以“file:///”开头。
## fileIo将数据写入流文件writeSync接口,length传参问题
适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型
一个中文字符length为3,英文字符为1,当前buffer为string类型时,length项需要开发者手动换算;如果要写入全部内容,可直接忽略length项,length长度超长时会导致接口报错。
## 如何读取应用沙箱之外的文件
适用于:OpenHarmony SDK 3.2.6.5版本,API9 Stage模型
fileio中接口入参为path时只能是从context获取到的本应用沙箱路径,若要访问其他路径的数据,如公共数据图片视频等,需要通过数据所有者打开文件返回fd进行操作。
比如向mediaLibrary请求读取/写入某文件,然后通过打开代表特定文件的URI后返回的fd进行操作,操作步骤如下:
1.
通过媒体查询获取文件fileAsset对象;
2.
通过fileAsset.open方法返回的fd;
3.
将fd作为fileIo接口参数进行文件读写操作;
## 如何解决文件的中文内容乱码
适用于:OpenHarmony SDK 3.2.5.5版本,API9 Stage模型
读取文件内容的buffer数据后,通过util.TextDecoder对文件内容进行解码。
示例:
```
import
util
from
'@ohos.util'
async
function
readFile
(
path
)
{
let
stream
=
fileio
.
createStreamSync
(
path
,
"r+"
);
let
readOut
=
await
stream
.
read
(
new
ArrayBuffer
(
4096
));
let
textDecoder
=
new
util
.
TextDecoder
(
"utf-8"
,
{
ignoreBOM
:
true
});
let
buffer
=
new
Uint8Array
(
readOut
.
buffer
)
let
readString
=
textDecoder
.
decode
(
buffer
,
{
stream
:
false
});
console
.
log
(
"[Demo] 读取的文件内容:"
+
readString
);
}
```
## 调用媒体库getAlbums方法,没有收到返回,也没有捕获到异常是为什么
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录