文件存储

更新时间: 2021-07-09 15:29

说明

从API Version 6开始,该接口不再维护,推荐使用文件管理接口(@ohos.fileio)进行文件存储管理。

涉及到文件目录的请参考下述表格:

目录类型

路径前缀

访问可见性

说明

临时目录

internal://cache/

仅本应用可见

可读写,随时可能清除,不保证持久性。一般用作下载临时目录或缓存目录。

应用私有目录

internal://app/

仅本应用可见

随应用卸载删除。

支持设备

API 手机 平板 智慧屏 智能穿戴
file.move 支持 支持 支持 支持
file.copy 支持 支持 支持 支持
file.list 支持 支持 支持 支持
file.get 支持 支持 支持 支持
file.delete 支持 支持 支持 支持
file.writeText 支持 支持 支持 支持
file.writeArrayBuffer 支持 支持 支持 支持
file.readText 支持 支持 支持 支持
file.readArrayBuffer 支持 支持 支持 支持
file.access 支持 支持 支持 支持
file.mkdir 支持 支持 支持 支持
file.rmdir 支持 支持 支持 支持

说明

file.writeText、file.writeArrayBuffer、file.readText和file.readArrayBuffer仅支持文本文档读写。

导入模块

import file from '@system.file';

权限列表

file.move(OBJECT)

将指定文件移动到其他指定位置。

  • 参数
参数名 类型 必填 说明
srcUri string 要移动的文件的uri。
dstUri string 文件要移动到的位置的uri。
success Function 接口调用成功的回调函数,返回文件要移动到的位置的uri。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O错误。
301 文件或目录不存在。
  • 示例

    file.move({
        srcUri: 'internal://app/myfiles1',
        dstUri: 'internal://app/myfiles2',
        success: function(uri) {
            console.log('call success callback success');
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.copy(OBJECT)

将指定文件拷贝并存储到指定位置,接口所使用的URI描述详见文件组织

  • 参数
参数名 类型 必填 说明
srcUri string 要拷贝的文件的uri。
dstUri string 文件要拷贝到的位置的uri。 不支持用应用资源路径或tmp类型的uri。
success Function 接口调用成功的回调函数,返回文件要拷贝到的位置的uri。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O错误。
301 文件或目录不存在。
  • 示例

    file.copy({
        srcUri: 'internal://app/file.txt',
        dstUri: 'internal://app/file_copy.txt',
        success: function(uri) {
            console.log('call success callback success');
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.list(OBJECT)

获取指定路径下全部文件的列表,接口所使用的 URI 描述详见文件组织

  • 参数
参数名 类型 必填 说明
uri string 目录uri。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

success返回值:

参数名 类型 说明
fileList Array<FileInfo> 获取的文件列表,其中每个文件的信息的格式为: { uri:'file1', lastModifiedTime:1589965924479, length:10240, type: 'file' }
参数名 类型 说明
uri string 文件的 uri。
lastModifiedTime number 文件上一次保存时的时间戳,显示从1970/01/01 00:00:00 GMT到当前时间的毫秒数。
length number 文件的大小,单位为字节。
type string 文件的类型,可选值为: dir:目录;file:文件。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O错误。
301 文件或目录不存在。
  • 示例

    file.list({
        uri: 'internal://app/pic',
        success: function(data) {
            console.log(data.fileList);
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.get(OBJECT)

获取指定本地文件的信息,URI请参考文件组织

  • 参数
参数名 类型 必填 说明
uri string 文件的uri。
recursive boolean 是否进行递归获取子目录文件列表,缺省为false。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

success返回值:

参数名 类型 说明
uri string 文件的uri。
length number 文件字节长。
lastModifiedTime number 文件保存时的时间戳,从1970/01/01 00:00:00到当前时间的毫秒数。
type string 文件类型,可选值为: dir:目录;file:文件。
subFiles Array 文件列表。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O错误。
301 文件或目录不存在。
  • 示例

    file.get({
        uri: 'internal://app/file',
        success: function(data) {
            console.log(data.uri);
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.delete(OBJECT)

删除本地文件,使用的URI参考文件组织

  • 参数
参数名 类型 必填 说明
uri string 删除文件的uri,不能是应用资源路径。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 参数错误。
300 I/O错误。
301 文件或目录不存在。
  • 示例

    file.delete({
        uri: 'internal://app/my_file',
        success: function() {
            console.log('call delete success.');
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.writeText(OBJECT)

写文本内容到指定文件。

  • 参数
参数名 类型 必填 说明
uri string 本地文件uri,如果文件不存在会创建文件。
text string 写入的字符串。
encoding string 编码格式,默认为UTF-8。
append boolean 是否追加模式,默认为false。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 参数错误。
300 I/O错误。
301 文件或目录不存在。
  • 示例

    file.writeText({
        uri: 'internal://app/workspace/test.txt',
        text: 'Text that just for test.',
        success: function() {
            console.log('call writeText success.');
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.writeArrayBuffer(OBJECT)

写Buffer内容到指定文件。

  • 参数
参数名 类型 必填 说明
uri string 本地文件uri,如果文件不存在会创建文件。
buffer Uint8Array 写入的Buffer。
position number 文件开始写入数据的位置的偏移量,默认为0。
append boolean 是否追加模式,默认为false。当设置为true时,position参数无效。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O错误。
301 文件或目录不存在。
  • 示例

    file.writeArrayBuffer({
        uri: 'internal://app/workspace/test',
        buffer: buffer, //buffer为Uint8Array类型
        success: function() {
            console.log('call writeArrayBuffer success.');
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.readText(OBJECT)

从指定文件中读取文本内容。

  • 参数
参数名 类型 必填 说明
uri string 本地文件uri。
encoding string 编码格式,缺省为UTF-8。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

success返回值:

参数名 类型 说明
text string 读取到的文本内容。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O错误。
301 文件或目录不存在。
  • 示例

    file.readText({
        uri: 'internal://app/workspace/text.txt',
        success: function(data) {
            console.log('call readText success: ' + data.text);
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.readArrayBuffer(OBJECT)

从指定文件中读取Buffer内容。

  • 参数
参数名 类型 必填 说明
uri string 本地文件uri。
position number 读取的起始位置,缺省为文件的起始位置。
length number 需要读取的长度,缺省则读取到文件结尾。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

success返回值:

参数名 类型 说明
buffer Uint8Array 读取到的文件内容。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O错误。
301 文件或目录不存在。
  • 示例

    file.readArrayBuffer({
        uri: 'internal://app/workspace/test',
        position: 10,
        length: 200,
        success: function(data) {
            console.log('call readArrayBuffer success: ' + data.buffer);
        },
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.access(OBJECT)

判断指定文件或目录是否存在。

  • 参数
参数名 类型 必填 说明
uri string 目录或文件uri。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O 错误。
301 文件或目录不存在。
  • 示例

    file.access({
        uri: 'internal://app/test',
        success: function() {
            console.log('call access success.');
        },  
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });
    

file.mkdir(OBJECT)

创建指定目录。

  • 参数
参数名 类型 必填 说明
uri string 目录的uri路径。
recursive boolean 是否递归创建该目录的上级目录,缺省为false。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O 错误。
  • 示例

    file.mkdir({
        uri: 'internal://app/test_directory',
        success: function() {
            console.log('call mkdir success.');
        },  
        fail: function(data, code) {
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
         },
     });
    

file.rmdir(OBJECT)

删除指定目录。

  • 参数
参数名 类型 必填 说明
uri string 目录的uri路径。
recursive boolean 是否递归删除子文件和子目录,缺省为false。
success Function 接口调用成功的回调函数。
fail Function 接口调用失败的回调函数。
complete Function 接口调用结束的回调函数。

fail返回错误代码:

错误码 说明
202 出现参数错误。
300 出现I/O 错误。
301 文件或目录不存在。
  • 示例

    file.rmdir({
        uri: 'internal://app/test_directory',
        success: function() {
            console.log('call rmdir success.');
        },  
        fail: function(data, code) {    
            console.error('call fail callback fail, code: ' + code + ', data: ' + data);
        },
    });