From 36f024fcf078087dc2fda2b658516a2037553e5d Mon Sep 17 00:00:00 2001 From: onexiaomin Date: Mon, 9 Jan 2023 14:10:45 +0800 Subject: [PATCH] fixed 4d0b006 from https://gitee.com/onexiaomin/docs/pulls/13359 adapt to some changes Signed-off-by: onexiaomin --- .../reference/apis/js-apis-fileAccess.md | 405 ++++++++++++++++-- .../apis/js-apis-fileExtensionInfo.md | 2 +- 2 files changed, 381 insertions(+), 26 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md b/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md index 75d3376f37..a7dbee35c1 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md @@ -10,7 +10,7 @@ fileAccess模块是基于extension机制实现的一个对公共文件访问和 ## 导入模块 ```js -import fileAccess from '@ohos.data.fileAccess'; +import fileAccess from '@ohos.file.fileAccess'; ``` ## fileAccess.getFileAccessAbilityInfo @@ -38,7 +38,41 @@ getFileAccessAbilityInfo( ) : Promise<Array<Want>> wantInfos = await fileAccess.getFileAccessAbilityInfo(); console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos)); } catch (error) { - console.error("getFileAccessAbilityInfo failed, error " + error); + console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message); + } + } + ``` + +## fileAccess.getFileAccessAbilityInfo + +getFileAccessAbilityInfo(callback: AsyncCallback<Array<Want>>): void; + +以异步方法获取系统内extension配置为fileAcesss类型的所有Want信息。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER 和 ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | callback | AsyncCallback<Array<Want>> | 是 | 表示当前系统配置fileAccess的所有文件管理类服务 | + +**示例:** + + ```js + async getFileAccessAbilityInfo() { + try { + fileAccess.getFileAccessAbilityInfo(function (err, wantInfos) { + if (err) { + console.error("Failed to getFileAccessAbilityInfo in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos)); + }); + } catch (error) { + console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -85,7 +119,7 @@ createFileAccessHelper(context: Context, wants: Array<Want>) : FileAccessH if (!fileAccessHelper) console.error("createFileAccessHelper interface returns an undefined object"); } catch (error) { - console.error("createFileAccessHelper failed, error " + error); + console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -124,7 +158,7 @@ createFileAccessHelper(context: Context) : FileAccessHelper if (!fileAccesssHelperAllServer) console.error("createFileAccessHelper interface returns an undefined object"); } catch (error) { - console.error("createFileAccessHelper failed, error " + error); + console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -168,7 +202,51 @@ getRoots( ) : Promise<RootIterator> rootinfos.push(result.value); } } catch (error) { - console.error("getRoots failed, error " + error); + console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); + } + } + ``` + +## FileAccessHelper.getRoots + +getRoots(callback:AsyncCallback<RootIterator>) : void; + +以异步方法获取helper对象连接的文件管理服务类的设备根节点信息。使用callback异步回调。 +callback带回迭代器对象RootIterator,然后通过[next](#rootiteratornext)方法返回[RootInfo](#rootinfo)。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | callback | AsyncCallback<RootIterator> | 是 | 根设备目录信息组成迭代器对象 | + +**示例:** + + ```js + async getRoots() { + let rootinfos = []; + let isDone = false; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.getRoots(function (err, rootIterator) { + if (err) { + console.error("Failed to getRoots in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + while (!isDone) { + let result = rootIterator.next(); + console.log("next result = " + JSON.stringify(result)); + isDone = result.done; + if (!isDone) + rootinfos.push(result.value); + } + }); + } catch (error) { + console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -200,7 +278,7 @@ listFile(filter?: Filter) : FileIterator ```js // rootinfos 从getRoots()获取 - // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; + // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; let rootInfo = rootinfos[0]; let fileInfos = []; let isDone = false; @@ -220,7 +298,7 @@ listFile(filter?: Filter) : FileIterator fileInfos.push(result.value); } } catch (error) { - console.log("listFile failed, error " + error); + console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -250,7 +328,7 @@ scanFile(filter?: Filter) : FileIterator ```js // rootInfos 从 getRoots()获取 - // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; + // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; let rootInfo = rootInfos[0]; let fileInfos = []; let isDone = false; @@ -270,7 +348,7 @@ scanFile(filter?: Filter) : FileIterator fileInfos.push(result.value); } } catch (error) { - console.error("scanFile failed, error " + error); + console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -300,7 +378,7 @@ listFile(filter?: Filter) : FileIterator ```js // fileInfoDir 表示某个目录信息 - // let filter = { suffix : [".txt", ".jpg", ".xlsx"] }; + // let filter = { suffix : [".txt", ".jpg", ".xlsx"] }; let fileInfoDir = fileInfos[0]; let subfileInfos = []; let isDone = false; @@ -320,7 +398,7 @@ listFile(filter?: Filter) : FileIterator subfileInfos.push(result.value); } } catch (error) { - console.error("listFile failed, error " + error); + console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -351,7 +429,7 @@ scanFile(filter?: Filter) : FileIterator; ```js // fileInfoDir 表示某个目录信息 - // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; + // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; let fileInfoDir = fileInfos[0]; let subfileInfos = []; let isDone = false; @@ -371,7 +449,7 @@ scanFile(filter?: Filter) : FileIterator; subfileInfos.push(result.value); } } catch (error) { - console.error("scanFile-filter failed, error " + error); + console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -390,7 +468,7 @@ createFile(uri: string, displayName: string) : Promise<string> | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | -- | | uri | string | 是 | 表示需要创建文件的父目录的Uri | - | displayName | string | 是 | 待创建文件的名称,本地文件需要添加后缀,共享盘不要求| + | displayName | string | 是 | 待创建文件的名称,默认本地文件需要添加后缀 | **返回值:** @@ -414,9 +492,49 @@ createFile(uri: string, displayName: string) : Promise<string> console.error("createFile return undefined object"); return; } - console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); + console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); + } catch (error) { + console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.createFile + +createFile(uri: string, displayName: string, callback: AsyncCallback<string>) : void; + +以异步方法创建文件到指定目录,返回新文件uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 表示需要创建文件的父目录的Uri | + | displayName | string | 是 | 待创建文件的名称,默认本地文件需要添加后缀 | + | callback | AsyncCallback<string> | 是 | 新创建的文件的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceUri表示Download目录,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceUri = "datashare:///media/file/6"; + let displayName = "file1" + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.createFile(sourceUri, displayName, function (err, fileUri) { + if (err) { + console.error("Failed to createFile in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); + }); } catch (error) { - console.error("createFile failed, error " + error); + console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -459,9 +577,49 @@ mkDir(parentUri: string, displayName: string) : Promise<string> console.error("mkDir return undefined object"); return; } - console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); + console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); } catch (error) { - console.error("mkDir failed, error " + error); + console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.mkDir + +mkDir(parentUri: string, displayName: string, callback: AsyncCallback<string>) : void; + +以异步方法创建文件夹到指定目录,返回文件夹uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | parentUri | string | 是 | 表示需要创建文件夹的父目录的Uri | + | displayName | string | 是 | 待创建文件夹的名称| + | callback | AsyncCallback<string> | 是 | 新创建的文件夹的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceUri表示Download目录,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceUri = "datashare:///media/file/6"; + let dirName = "dirTest" + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.mkDir(sourceUri, dirName, function (err, dirUri) { + if (err) { + console.error("Failed to mkDir in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); + }); + } catch (error) { + console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -499,7 +657,46 @@ openFile(uri: string, flags: OPENFLAGS) : Promise<number> // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 let fd = await fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ); } catch (error) { - console.error("openFile failed, error " + error); + console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.openFile + +openFile(uri: string, flags: OPENFLAGS, callback: AsyncCallback<number>) : void; + +以异步方法打开文件,返回文件句柄。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 待打开文件的uri | + | flags | [OPENFLAGS](#openflags) | 是 | 文件打开的标志 | + | callback | AsyncCallback<number> | 是 | 文件句柄 | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码targetUri表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let targetUri = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ, function (err, fd) { + if (err) { + console.error("Failed to openFile in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("openFile sucess, fd: " + fd); + }); + } catch (error) { + console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -538,7 +735,45 @@ delete(uri: string) : Promise<number> if (code != 0) console.error("delete failed, code " + code); } catch (error) { - console.error("delete failed, error " + error); + console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.delete + +delete(uri: string, callback: AsyncCallback<number>) : void; + +以异步方法删除文件(夹),返回错误码。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 待删除文件(夹)的uri | + | callback | AsyncCallback<number> | 是 | 删除操作的错误码 | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码targetUri表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let targetUri = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.delete(targetUri, function (err, code) { + if (err) { + console.error("Failed to delete in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("delete sucess, code: " + code); + }); + } catch (error) { + console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -576,9 +811,49 @@ move(sourceFile: string, destFile: string) : Promise<string> try { // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 let fileUri = await fileAccessHelper.move(sourceFile, destFile); - console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); + console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); } catch (error) { - console.error("move failed, error " + error); + console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.move + +move(sourceFile: string, destFile: string, callback: AsyncCallback<string>) : void; + +以异步方法移动文件(夹),返回移动后文件(夹)的uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | sourceFile | string | 是 | 待移动的源文件(夹)的uri | + | destFile | string | 是 | 目标文件夹的uri | + | callback | AsyncCallback<string> | 是 | 新路径下的文件(夹)的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceFile destFile表示Download目录下文件或文件夹,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceFile = "datashare:///media/file/102"; + let destFile = "datashare:///media/file/101"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.move(sourceFile, destFile, function (err, fileUri) { + if (err) { + console.error("Failed to move in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); + }); + } catch (error) { + console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -615,9 +890,48 @@ rename(uri: string, displayName: string) : Promise<string> try { // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 let DestDir = await fileAccessHelper.rename(sourceDir, "testDir"); - console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); + console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); + } catch (error) { + console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.rename + +rename(uri: string, displayName: string, callback: AsyncCallback<string>) : void; + +以异步方法重命名文件(夹),返回重命名后的文件(夹)的Uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 源文件(夹)的uri | + | displayName | string | 是 | 文件(夹)名,支持带后缀 | + | callback | AsyncCallback<string> | 是 | 重命名后的文件(夹)的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceDir表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceDir = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.rename(sourceDir, "testDir", function (err, DestDir) { + if (err) { + console.error("Failed to rename in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); + }); } catch (error) { - console.error("rename failed, error " + error); + console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -658,7 +972,48 @@ access(sourceFileUri: string) : Promise<boolean> else console.log("sourceDir does not exist"); } catch (error) { - console.error("rename failed, error " + error); + console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.access + +access(sourceFileUri: string, callback: AsyncCallback<boolean>) : void; + +以异步方法判断文件(夹)是否存在。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | sourceFileUri | string | 是 | 文件(夹)的uri | + | callback | AsyncCallback<boolean> | 是 | 文件(夹)是否存在 | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceDir表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceDir = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.access(sourceDir, function (err, existJudgment) { + if (err) { + console.error("Failed to access in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + if (existJudgment) + console.log("sourceDir exists"); + else + console.log("sourceDir does not exist"); + }); + } catch (error) { + console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md b/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md index b8f4a30ab4..bc1e98d8d6 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md @@ -10,7 +10,7 @@ ## 导入模块 ```js -import fileExtensionInfo from '@ohos.fileExtensionInfo'; +import fileExtensionInfo from '@ohos.file.fileExtensionInfo'; ``` ## fileExtensionInfo.DeviceType -- GitLab