开源鸿蒙 User File Access and Management

2022-08-09 浏览 (718)

User File Access and Management

The fileManager module provides APIs for accessing and managing user files. It interworks with the underlying file management services to implement media library and external card management, and provides capabilities for applications to query and create user files.

NOTE

  • The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
  • The APIs of this module are system APIs and cannot be called by third-party applications. Currently, these APIs can be called only by filepicker.

Modules to Import

import filemanager from '@ohos.fileManager';

filemanager.getRoot

getRoot(options? : {dev? : DevInfo}) : Promise<FileInfo[]>

Obtains information about the root album or directory in asynchronous mode. This API uses a promise to return the result.

System capability: SystemCapability.FileManagement.UserFileService

Parameters

NameTypeMandatoryDescription
optionsObjectNoThe options are as follows:
-  dev: See DevInfo. It is dev = {name: "local"} by default if not specified. Currently, only 'local' is supported.

Return value

TypeDescription
Promise<FileInfo[]>Promise used to return the root album or directory information obtained.

Example

filemanager.getRoot().then((fileInfo) => {
    if(Array.isArray(fileInfo)) {
        for (var i = 0; i < fileInfo.length; i++) {
            console.log("file:"+JSON.stringify(fileInfo));
        }
    }
}).catch((err) => {
    console.log(err)
});

filemanager.getRoot

getRoot(options? : {dev? : DevInfo}, callback : AsyncCallback<FileInfo[]>) : void

Obtains information about the root album or directory in asynchronous mode. This API uses a callback to return the result.

System capability: SystemCapability.FileManagement.UserFileService

Parameters

NameTypeMandatoryDescription
optionsObjectNoThe options are as follows:
-  dev: See DevInfo. It is dev = {name: "local"} by default if not specified. Currently, only 'local' is supported.
callbackAsyncCallback<FileInfo[]>YesCallback invoked to return the root album or directory information obtained.

Example

let options = {
  "dev":{
    "name":"local"
  }
};
filemanager.getRoot(options, (err, fileInfo)=>{
    if(Array.isArray(fileInfo)) {
        for (var i = 0; i < fileInfo.length; i++) {
            console.log("file:"+JSON.stringify(fileInfo));
        }
    } 
});

filemanager.listFile

listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : number, count? : number}) : Promise<FileInfo[]>

Obtains information about the second-level album or files in asynchronous mode. This API uses a promise to return the result.

System capability: SystemCapability.FileManagement.UserFileService

Parameters

NameTypeMandatoryDescription
pathstringYesURI of the directory to query.
typestringYesType of the files to query. The file type can be file, image, audio, or video.
optionsObjectNoThe options are as follows:
-  dev: See DevInfo. It is dev = {name: "local"} by default if not specified. Currently, only 'local' is supported.
-  offset: position to start the query. The value is a number.
-  count: number of files to query.

Return value

TypeDescription
Promise<FileInfo[]>Promise used to return the album or file information obtained.

Error

Error InfoError CodeDescription
No such file or directory2The directory or album of the specified URI does not exist.
No such process3Failed to obtain the FMS service.
Not a directory20The object specified by the URI is not a directory or album.

Example

// Obtain all files in the directory.
// Call listFile() and getRoot() to obtain the file URI.
let media_path = ""
filemanager.listFile(media_path, "file")
.then((fileInfo) => {
    if(Array.isArray(fileInfo)) {
        for (var i = 0; i < fileInfo.length; i++) {
            console.log("file:"+JSON.stringify(fileInfo));
        }
    }
}).catch((err) => {
    console.log("Failed to get file"+err);
});

filemanager.listFile

listFile(path : string, type : string, options? : {dev? : DevInfo, offset? : number, count? : number}, callback : AsyncCallback<FileInfo[]>) : void

Obtains information about the second-level album or files in asynchronous mode. This API uses a callback to return the result.

System capability: SystemCapability.FileManagement.UserFileService

Parameters

NameTypeMandatoryDescription
pathstringYesURI of the directory to query.
typestringYesType of the files to query. The file type can be file, image, audio, or video.
optionsObjectNoThe options are as follows:
-  dev: See DevInfo. It is dev = {name: "local"} by default if not specified. Currently, only 'local' is supported.
-  offset: position to start the query. The value is a number.
-  count: number of files to query.
callbackAsyncCallback<FileInfo[]>YesCallback invoked to return the root album or directory information obtained.

Error

Error InfoError CodeDescription
No such file or directory2The directory or album of the specified URI does not exist.
No such process3Failed to obtain the FMS service.
Not a directory20The object specified by the URI is not a directory or album.

Example

// Call listFile() and getRoot() to obtain the file path.
let fileInfos = filemanager.getRoot(); 
let media_path  = "";
for (let i = 0; i < fileInfos.length; i++) {
  if (fileInfos[i].name == "image_album") {
    media_path = fileInfos[i].path;
  } else if (fileInfos[i].name == "audio_album") {
    media_path = fileInfos[i].path;
  } else if (fileInfos[i].name == "video_album") {
    media_path = fileInfos[i].path;
  } else if (fileInfos[i].name == "file_folder") {
    media_path = fileInfos[i].path;
  }
}

filemanager.listFile(media_path, "file")
.then((fileInfo) => {
  if(Array.isArray(fileInfo)) {
      for (var i = 0; i < fileInfo.length; i++) {
          console.log("file:"+JSON.stringify(fileInfo));
      }
  }
}).catch((err) => {
  console.log("Failed to get file"+err);
});

filemanager.createFile

createFile(path : string, filename : string, options? : {dev? : DevInfo}) : Promise<string>

Creates a file in the specified path in asynchronous mode. This API uses a promise to return the result.

System capability: SystemCapability.FileManagement.UserFileService

Parameters

NameTypeMandatoryDescription
filenamestringYesName of the file to create.
pathstringYesURI of the file to create.
optionsObjectNoThe options are as follows:
-  dev: See DevInfo. It is dev = {name: "local"} by default if not specified. Currently, only 'local' is supported.

Return value

TypeDescription
Promise<string>Promise used to return the URI of the file created.

Error

Error InfoError CodeDescription
Operation not permitted1A file with the same name already exists.
No such file or directory2The directory or album of the specified URI does not exist.
No such process3Failed to obtain the FMS service.
Not a directory20The object specified by the URI is not a directory or album.

Example

// Create a file.
let media_path = "" // Obtain the file URI using listFile() and getRoot().
let name = "xxx.jpg" // File to be saved.
filemanager.createFile(media_path, name).then((uri) => {
    // The URI of the file created is returned.
    console.log("file uri:"+uri);
}).catch((err) => {
    console.log(err);
});

filemanager.createFile

createFile(path : string, filename: string, options? : {dev? : DevInfo}, callback : AsyncCallback<string>) : void

Creates a file in the specified path in asynchronous mode. This API uses a callback to return the result.

System capability: SystemCapability.FileManagement.UserFileService

Parameters

NameTypeMandatoryDescription
filenamestringYesName of the file to create.
pathstringYesURI of the file to create.
optionsObjectNoThe options are as follows:
-  dev: See DevInfo. It is dev = {name: "local"} by default if not specified. Currently, only 'local' is supported.
callbackAsyncCallback<FileInfo[]>YesCallback invoked to return the root album or directory information obtained.

Error

Error InfoError CodeDescription
Operation not permitted1A file with the same name already exists.
No such file or directory2The directory or album of the specified URI does not exist.
No such process3Failed to obtain the FMS service.
Not a directory20The object specified by the URI is not a directory or album.

Example

// Create a file.
// Call listFile() and getRoot() to obtain the file URI.
let media_path = ""
// File to be saved.
let name = "xxx.jpg"
let options = {
  "dev":{
    "name":"local"
  }
};
filemanager.createFile(media_path, name, options, function(err, uri) {
  // The URI of the file created is returned.
  console.log("file uri:"+uri);
});

FileInfo

Defines the file information returned by getRoot() or listFile().

System capability: SystemCapability.FileManagement.UserFileService

Attributes

NameTypeReadableWritableDescription
namestringYesNoFile name.
pathstringYesNoURI of the file.
typestringYesNoFile type.
sizenumberYesNoFile size.
addedTimenumberYesNoTime when the file was scanned to the database.
modifiedTimenumberYesNoTime when the file was modified.

DevInfo

Defines the device type.

System capability: SystemCapability.FileManagement.UserFileService

Attributes

NameTypeReadableWritableDescription
namestringYesYesDevice name.

你可能感兴趣的文章

开源鸿蒙 APIs

开源鸿蒙 API Reference Document Description

开源鸿蒙 Bundle

开源鸿蒙 Context

开源鸿蒙 DataUriUtils

开源鸿蒙 EnterpriseAdminExtensionAbility

开源鸿蒙 Work Scheduler Callbacks

开源鸿蒙 AbilityContext

开源鸿蒙 ErrorCode

开源鸿蒙 wantConstant

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/f47cc8d874a843f4a3b81848cb1f2d42