# IO 文件管理
方法
- convertAbsoluteFileSystem 平台绝对路径转换成本地扩展相对路径
- convertLocalFileSystemURL 本地扩展相对路径转换成平台绝对路径
- resolveLocalFileSystemURL 快速获取指定的目录或文件操作对象
- requestFileSystem 请求本地扩展文件系统
- pickFile 从fileApp中选择文件
- moveToFileApp 将文件移动到file App应用中
- meteringCacheRange 设置计量缓存范围
- cachesSize 获取计量范围缓存大小
- cachesClear 删除计量范围缓存
对象
- FileSystem 本地扩展文件系统对象
- FileEntry 文件操作对象
- DirectoryEntry 文件操作对象
常量
- PRIVATE_WWW 应用运行资源目录常量
- PRIVATE_DOC 应用私有文档目录常量
- PUBLIC_DOCUMENTS 程序公用文档目录常量
- PUBLIC_DOWNLOADS 程序公用下载目录常量
# convertAbsoluteFileSystem
平台绝对路径转换成本地扩展相对路径 (路径名称只支持,以上面常量开始的path)
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | √ |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | String | 是 | 平台绝对路径,如:/var/xxx/PRIVATE_DOC/xxx/xxx.txt |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
url | String | 平台扩展相对路径,如:_doc/xxx/xxx.txt |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
// publicDownloads 通过foxsdk.io.requestFileSystem(foxsdk.io.PUBLIC_DOWNLOADS)获取
// foxsdk.io.requestFileSystem(foxsdk.io.PUBLIC_DOWNLOADS, ret=>{console.log(ret.root.fullPath)})
// let publicDownloads =
let url = publicDownloads + '202001081458.txt';
foxsdk.io.convertAbsoluteFileSystem(url, path => {
console.log('path: ' + path);
},ret => {
// sdkError
});
# convertLocalFileSystemURL
将平台扩展相对路径转换成平台绝对路径
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | √ |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 平台扩展绝对路径,如:_doc/xxx/xxx.txt |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
path | String | 平台扩展相对路径,如:/var/xxx/PRIVATE_DOC/xxx/xxx.txt |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let path = '_downloads/202001081458.txt';
foxsdk.io.convertLocalFileSystemURL(path, url => {
console.log('url: ' + url);
},ret => {
// sdkError
});
# resolveLocalFileSystemURL
快速获取指定的目录或文件操作对象,如通过URL值“_www/test.html”可直接获取文件对象
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 要操作文件或目录的URL地址,如:_doc/xxx/xxx.txt |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
entry | DirectoryEntry | FileEntry | 目录或文件操作对象 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
# pickFile
从fileApp中选择文件
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
无需参数
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
path | String | 文件路径 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
foxsdk.io.pickFile(fs => {
// fs.name
// fs.payload.path
},ret => {
// SdkError
});
# moveToFileApp
将文件移动到file App应用中
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 要操作文件或目录的URL地址,如:_doc/xxx/xxx.txt |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
无需参数
- successCb 返回参数
参数 | 类型 | 说明 |
---|
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
foxsdk.io.moveToFileApp(url,fs => {
//
//
},ret => {
// SdkError
});
# requestFileSystem
请求本地扩展文件系统
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | String | 是 | 本地文件系统常量,如:foxsdk.io.PRIVATE_WWW、foxsdk.io.PRIVATE_DOC、foxsdk.io.PUBLIC_DOCUMENTS、foxsdk.io.PUBLIC_DOWNLOADS |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
fs | FileSystem | 目录或文件操作对象 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
foxsdk.io.requestFileSystem(type, fs => {
// fs.name
// fs.root.fullPath
},ret => {
// SdkError
});
# meteringCacheRange
设置计量缓存范围
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | Array | 是 | 默认范围[PRIVATE_DOC,PUBLIC_DOCUMENTS,PUBLIC_DOWNLOADS] |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
url | String | 成功‘0’ |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
// publicDownloads 通过foxsdk.io.requestFileSystem(foxsdk.io.PUBLIC_DOWNLOADS)获取
// let publicDownloads =
foxsdk.io.meteringCacheRange([foxsdk.io.PRIVATE_DOC], path => {
console.log('path: ' + path);
},ret => {
// sdkError
});
# cachesSize
获取计量范围缓存大小
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
url | String | 成功‘0’ |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
// publicDownloads 通过foxsdk.io.requestFileSystem(foxsdk.io.PUBLIC_DOWNLOADS)获取
// let publicDownloads =
foxsdk.io.cachesSize(path => {
console.log('path: ' + path);
},ret => {
// sdkError
});
# cachesClear
获取计量范围缓存大小
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
url | String | 成功‘0’ |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
// publicDownloads 通过foxsdk.io.requestFileSystem(foxsdk.io.PUBLIC_DOWNLOADS)获取
// let publicDownloads =
foxsdk.io.cachesClear(path => {
console.log('path: ' + path);
},ret => {
// sdkError
});
# FileSystem
本地扩展文件系统
- 属性
name
文件系统名称,共4种文件系统:PRIVATE_WWW、PRIVATE_DOC、PUBLIC_DOCUMENTS、PUBLIC_DOWNLOADSroot
DirectoryEntry类型,文件系统根目录操作对象
# FileEntry
属性
name
文件名,如:20200202.txtfullPath
文件平台绝对路径,如:/xxx/xxx/PRIVATE_DOC/20200202.txtremoteURL
文件本地扩展相对路径,如_doc/20200202.txtfileSystem
文件对应的文件系统对象isFile
操作对象的是否为文件,FileEntry
对象固定其值为trueisDirectory
操作对象是否为目录,FileEntry
对象固定其值为false
方法
- moveTo 移动本地文件
- copyTo 复制本地文件
- remove 删除本地文件
- getMetadata 获取目录/文件的属性
- getFileDigestInfo 获取文件摘要信息
# DirectoryEntry
属性
name
文件名,如:20200202.txtfullPath
文件平台绝对路径,如:/xxx/xxx/PRIVATE_DOC/20200202.txtremoteURL
文件本地扩展相对路径,如_doc/20200202.txtfileSystem
文件对应的文件系统对象isFile
操作对象的是否为文件,DirectoryEntry
对象固定其值为falseisDirectory
操作对象是否为目录,DirectoryEntry
对象固定其值为true
方法
- getDirectory 创建或打开子目录
- getFile 创建或打开文件
- moveTo 移动本地文件
- copyTo 复制本地文件
- remove 删除本地文件
- getMetadata 获取目录/文件的属性
- srcFile 获取本地文件的文件/文件夹信息,仅iOS支持
- getFileListMetadata 获取目录的属性
# getDirectory
创建或打开子目录
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | String | 是 | 要操作的目录相对于当前操作对象目录的地址 |
flag | Object | 否 | 操作文件或目录的参数{create: false, exclusive: false} |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
entry | DirectoryEntry | 目录操作对象 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.getDirectory('test/', { create: true }, entry1 => {
// 返回test目录操作对象
}, err => {
// SdkError
})
},ret => {
// SdkError
});
# getFile
创建或打开文件
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | String | 是 | 要操作的目录相对于当前操作对象目录的地址 |
flag | Object | 否 | 操作文件或目录的参数{create: false, exclusive: false} |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
entry | FileEntry | 文件操作对象 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.getFile('test.txt', { create: true }, entry1 => {
// 返回test.txt文件操作对象
}, err => {
// SdkError
})
},ret => {
// SdkError
});
# moveTo
移动本地文件
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
dest | String | 是 | 要移动到的目标目录,如:_doc/test/ |
newName | String | 否 | 移动后的文件名称,默认为原始文件名称,如:test1.txt |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
entry | DirectoryEntry | FileEntry | 目录或文件操作对象 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/202001091600.txt';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.moveTo('_doc/','202001091601.txt', entry => {
// Entry 文件或目录操作对象
}, err => {
// SdkError
})
},ret => {
// SdkError
});
# copyTo
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
dest | String | 是 | 要复制到的目标目录,如:_doc/test/ |
newName | String | 否 | 复制后的文件名称,默认为原始文件名称,如:test1.txt |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
entry | DirectoryEntry | FileEntry | 目录或文件操作对象 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/202001081458.txt';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.copyTo('_doc/','202001081600.txt', entry => {
// Entry 文件或目录操作对象
}, err => {
// SdkError
})
},ret => {
// SdkError
});
# remove
删除本地文件
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
recursive | Boolean | 否 | 是否递归查询,默认false |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_doc/202001091601.txt';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.remove(ret => {
// success SdkError
}, err => {
// fail SdkError
})
},ret => {
// fail SdkError
});
# getMetadata
获取目录/文件的属性
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
recursive | Boolean | 否 | 是否递归查询,默认false |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
size | Number | 文件大小,以字节为单位,如果是文件夹,返回0,如果是文件,返回文件实际的大小 |
modificationTime | Number | 文件保存时的时间戳 |
directoryCount | String | 文件夹的数量,如果是文件夹,返回第一个级文件夹的个数,如果是文件,返回0 |
fileCount | Number | 文件的数量,如果是文件夹,返回文件的个数,如果是文件,返回0 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/test/t1.txt';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.getMetadata(ret => {
console.log('getFileDigestInfo: ' + JSON.stringify(ret));
}, err => {
// SdkError
})
},ret => {
// SdkError
});
# srcFile
用于获取已保存到本地的文件/文件夹信息
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
src | string | 源文件夹路径 |
dst | string | 目标文件夹路径 |
filelist | Array[string] | 文件或目录的路径 |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/';
foxsdk.io.getSrc(url, entry => {
entry.getSrc(ret => {
console.log('getSrc: ' + JSON.stringify(ret));
}, err => {
// SdkError
})
},ret => {
// SdkError
});
# getFileListMetadata
获取目录的属性
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
recursive | Boolean | 否 | 是否递归查询,默认false |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
filelist | Array[Object] | 文件或目录的状态信息对象 |
- filelist
参数 | 类型 | 说明 |
---|---|---|
filePath | String | 文件路径 |
createTime | Number | 创建时间戳 |
size | Number | 文件大小,单位:byte |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.getFileListMetadata(ret => {
console.log('getFileDigestInfo: ' + JSON.stringify(ret));
}, err => {
// SdkError
})
},ret => {
// SdkError
});
# getFileDigestInfo
获取文件摘要信息
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
digestAlgorithm | String | 否 | 摘要算法,目前仅支持md5,默认md5 |
successCb | Function | 是 | 成功回调 |
failCb | Function | 是 | 失败回调 |
- successCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
fileinfo | Object | 文件或目录的状态信息对象 |
- fileinfo
参数 | 类型 | 说明 |
---|---|---|
digest | String | 文件摘要信息 |
size | Number | 文件大小,单位:byte |
- failCb 返回参数
参数 | 类型 | 说明 |
---|---|---|
retObj | SdkError | 错误对象 |
- 示例代码
let url = '_downloads/202001081458.txt';
foxsdk.io.resolveLocalFileSystemURL(url, entry => {
entry.getFileDigestInfo('md5', ret => {
console.log('getFileDigestInfo: ' + JSON.stringify(ret));
}, err => {
// SdkError
})
},ret => {
// SdkError
});