• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.file.fileAccess (User File Access and Management)
2
3The **fileAccess** module is a framework for accessing and operating user files based on the Extension ability mechanism. This module interacts with diverse file management services, such as the media library and external storage management service, and provides a set of file access and management APIs for system applications. The media library service allows access to user files on local devices and distributed devices. The external storage management service allows access to the user files stored on devices such as shared disks, USB flash drives, and SD cards.
4
5>**NOTE**
6>
7>- 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.
8>- The APIs provided by this module are system APIs and cannot be called by third-party applications. Currently, the APIs can be called only by **FilePicker** and **Files**.
9>- The APIs of this module support processing of error codes. For details, see [File Management Error Codes](../errorcodes/errorcode-filemanagement.md).
10
11## Modules to Import
12
13```js
14import fileAccess from '@ohos.file.fileAccess';
15```
16
17## fileAccess.getFileAccessAbilityInfo
18
19getFileAccessAbilityInfo( ) : Promise<Array<Want>>
20
21Obtains information about all wants with **extension** set to **fileAccess** in the system. A want is a basic communication component used to start services. This API uses a promise to return the result.
22
23**System capability**: SystemCapability.FileManagement.UserFileService
24
25**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
26
27**Return value**
28
29| Type| Description|
30| --- | -- |
31| Promise<Array<Want>> | Promise used to return the **want** information obtained.|
32
33**Example**
34
35  ```js
36  async getFileAccessAbilityInfo() {
37    let wantInfos = [];
38    try {
39      wantInfos = await fileAccess.getFileAccessAbilityInfo();
40      console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos));
41    } catch (error) {
42      console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message);
43    }
44  }
45  ```
46
47## fileAccess.getFileAccessAbilityInfo
48
49getFileAccessAbilityInfo(callback: AsyncCallback<Array<Want>>): void;
50
51Obtains information about all wants with **extension** set to **fileAccess** in the system. A want is a basic communication component used to start services. This API uses an asynchronous callback to return the result.
52
53**System capability**: SystemCapability.FileManagement.UserFileService
54
55**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
56
57**Parameters**
58
59| Name| Type| Mandatory| Description|
60| --- | --- | --- | -- |
61| callback | AsyncCallback<Array<Want>> | Yes| Promise used to return the **want** information obtained.|
62
63**Example**
64
65  ```js
66  async getFileAccessAbilityInfo() {
67    try {
68      fileAccess.getFileAccessAbilityInfo(function (err, wantInfos) {
69        if (err) {
70          console.error("Failed to getFileAccessAbilityInfo in async, errCode:" + err.code + ", errMessage:" + err.message);
71          return;
72        }
73        console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos));
74      });
75    } catch (error) {
76      console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message);
77    }
78  }
79  ```
80
81## fileAccess.createFileAccessHelper
82
83createFileAccessHelper(context: Context, wants: Array<Want>) : FileAccessHelper
84
85Synchronously creates a **Helper** object to connect to the specified wants. The **Helper** object provides file access and management capabilities.
86
87**System capability**: SystemCapability.FileManagement.UserFileService
88
89**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
90
91**Parameters**
92
93| Name| Type| Mandatory| Description|
94| --- | --- | --- | -- |
95| context | Context | Yes| Context of the ability.|
96| wants | Array<Want> | Yes| Wants to connect.|
97
98**Return value**
99
100| Type| Description|
101| --- | -- |
102| FileAccessHelper | **Helper** object created.|
103
104**Example**
105
106  ```js
107  createFileAccessHelper() {
108    let fileAccessHelper = null;
109    / / Obtain wantInfos by using getFileAccessAbilityInfo().
110    // Create a helper object to interact with the media library service only.
111    let wantInfos = [
112      {
113        "bundleName": "com.ohos.medialibrary.medialibrarydata",
114        "abilityName": "FileExtensionAbility",
115      },
116    ]
117    try {
118      // this.context is passed by EntryAbility.
119      fileAccessHelper = fileAccess.createFileAccessHelper(this.context, wantInfos);
120      if (!fileAccessHelper)
121        console.error("createFileAccessHelper interface returns an undefined object");
122    } catch (error) {
123      console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message);
124    }
125  }
126  ```
127
128## fileAccess.createFileAccessHelper
129
130createFileAccessHelper(context: Context) : FileAccessHelper
131
132Synchronously creates a **Helper** object to connect to all file management services in the system.
133
134**System capability**: SystemCapability.FileManagement.UserFileService
135
136**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER and ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
137
138**Parameters**
139
140| Name| Type| Mandatory| Description|
141| --- | --- | --- | -- |
142| context | Context | Yes| Context of the ability.|
143
144**Return value**
145
146| Type| Description|
147| --- | -- |
148| FileAccessHelper | **Helper** object created.|
149
150**Example**
151
152  ```js
153  createFileAccessHelper() {
154    let fileAccessHelperAllServer = null;
155    // Create a Helper object to interact with all file management services configured with fileAccess in the system.
156    try {
157      // this.context is passed by EntryAbility.
158      fileAccessHelperAllServer = fileAccess.createFileAccessHelper(this.context);
159      if (!fileAccessHelperAllServer)
160        console.error("createFileAccessHelper interface returns an undefined object");
161    } catch (error) {
162      console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message);
163    }
164  }
165  ```
166
167## FileAccessHelper.getRoots
168
169getRoots( ) : Promise<RootIterator>
170
171Obtains information about the device root nodes of the file management service type connected to the **Helper** object. This API uses a promise to return a **RootIterator** object, which returns [RootInfo](#rootinfo) by using [next()](#rootiteratornext).
172
173**System capability**: SystemCapability.FileManagement.UserFileService
174
175**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
176
177**Return value**
178
179| Type| Description|
180| --- | -- |
181| Promise<RootIterator> | Promise used to return the **RootIterator** object obtained.|
182
183**Example**
184
185  ```js
186  async getRoots() {
187    let rootIterator = null;
188    let rootinfos = [];
189    let isDone = false;
190    try {
191      // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
192      rootIterator = await fileAccessHelper.getRoots();
193      if (!rootIterator) {
194        console.error("getRoots interface returns an undefined object");
195        return;
196      }
197      while (!isDone) {
198        let result = rootIterator.next();
199        console.log("next result = " + JSON.stringify(result));
200        isDone = result.done;
201        if (!isDone)
202          rootinfos.push(result.value);
203      }
204    } catch (error) {
205      console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message);
206    }
207  }
208  ```
209
210## FileAccessHelper.getRoots
211
212getRoots(callback:AsyncCallback<RootIterator>) : void;
213
214Obtains information about the device root nodes of the file management service type connected to the **Helper** object. This API uses an asynchronous callback to return the result.
215
216The callback has a **RootIterator** object, which returns [RootInfo](#rootinfo) through [next()](#rootiteratornext).
217
218**System capability**: SystemCapability.FileManagement.UserFileService
219
220**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
221
222**Parameters**
223
224| Name| Type| Mandatory| Description|
225| --- | --- | --- | -- |
226| callback | AsyncCallback<RootIterator> | Yes| Promise used to return the **RootIterator** object obtained.|
227
228**Example**
229
230  ```js
231  async getRoots() {
232    let rootinfos = [];
233    let isDone = false;
234    try {
235      // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
236      fileAccessHelper.getRoots(function (err, rootIterator) {
237        if (err) {
238          console.error("Failed to getRoots in async, errCode:" + err.code + ", errMessage:" + err.message);
239          return;
240        }
241        while (!isDone) {
242          let result = rootIterator.next();
243          console.log("next result = " + JSON.stringify(result));
244          isDone = result.done;
245          if (!isDone)
246            rootinfos.push(result.value);
247        }
248      });
249    } catch (error) {
250      console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message);
251    }
252  }
253  ```
254
255## RootInfo.listfile
256
257listFile(filter?: Filter) : FileIterator
258
259Synchronously obtains the **FileIterator** object of the first-level files (directory) matching the conditions of the filter from the device root node. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
260
261**System capability**: SystemCapability.FileManagement.UserFileService
262
263**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
264
265**Parameters**
266
267| Name| Type| Mandatory| Description|
268| --- | --- | -- | -- |
269| filter | Filter | No| **Filter** object. |
270
271
272**Return value**
273
274| Type| Description|
275| --- | -- |
276| FileIterator | **FileIterator** object obtained.|
277
278**Example**
279
280  ```js
281  // Obtain rootInfos by using getRoots().
282  // let filter = {suffix : [".txt", ".jpg", ".xlsx"]};
283  let rootInfo = rootinfos[0];
284  let fileInfos = [];
285  let isDone = false;
286  try {
287    let fileIterator = rootInfo.listFile();
288    // listFile contains the filter implementation.
289    // let fileIterator = rootInfo.listFile(filter);
290    if (!fileIterator) {
291      console.error("listFile interface returns an undefined object");
292      return;
293    }
294    while (!isDone) {
295      let result = fileIterator.next();
296      console.log("next result = " + JSON.stringify(result));
297      isDone = result.done;
298      if (!isDone)
299        fileInfos.push(result.value);
300    }
301  } catch (error) {
302    console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message);
303  }
304  ```
305
306## RootInfo.scanFile
307
308scanFile(filter?: Filter) : FileIterator
309
310Recursively obtains the **FileIterator** object of the files matching the conditions of the filter from the device root node synchronously. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
311
312**System capability**: SystemCapability.FileManagement.UserFileService
313
314**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
315
316**Parameters**
317
318| Name| Type| Mandatory| Description|
319| --- | --- | -- | -- |
320| filter | Filter | No| **Filter** object. |
321
322**Return value**
323
324| Type| Description|
325| --- | -- |
326| FileIterator | **FileIterator** object obtained.|
327
328**Example**
329
330  ```js
331  // Obtain rootInfos by using getRoots().
332  // let filter = {suffix : [".txt", ".jpg", ".xlsx"]};
333  let rootInfo = rootInfos[0];
334  let fileInfos = [];
335  let isDone = false;
336  try {
337    let fileIterator = rootInfo.scanFile();
338    // scanFile contains the filter implementation.
339    // let fileIterator = rootInfo.scanFile(filter);
340    if (!fileIterator) {
341      console.error("scanFile interface returns undefined object");
342      return;
343    }
344    while (!isDone) {
345      let result = fileIterator.next();
346      console.log("next result = " + JSON.stringify(result));
347      isDone = result.done;
348      if (!isDone)
349        fileInfos.push(result.value);
350    }
351  } catch (error) {
352    console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message);
353  }
354  ```
355
356## FileInfo.listfile
357
358listFile(filter?: Filter) : FileIterator
359
360Synchronously obtains the **FileIterator** object of the next-level files (directories) matching the conditions of the filter from a directory. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
361
362**System capability**: SystemCapability.FileManagement.UserFileService
363
364**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
365
366**Parameters**
367
368| Name| Type| Mandatory| Description|
369| --- | --- | -- | -- |
370| filter | Filter | No| **Filter** object. |
371
372**Return value**
373
374| Type| Description|
375| --- | -- |
376| FileIterator | **FileIterator** object obtained.|
377
378**Example**
379
380  ```js
381  // fileInfoDir specifies the target directory.
382  // let filter = { suffix : [".txt", ".jpg", ".xlsx"] };
383  let fileInfoDir = fileInfos[0];
384  let subfileInfos = [];
385  let isDone = false;
386  try {
387    let fileIterator = fileInfoDir.listFile();
388    // listFile contains the filter implementation.
389    // let fileIterator = rootInfo.listFile(filter);
390    if (!fileIterator) {
391      console.error("listFile interface returns an undefined object");
392      return;
393    }
394    while (!isDone) {
395      let result = fileIterator.next();
396      console.log("next result = " + JSON.stringify(result));
397      isDone = result.done;
398      if (!isDone)
399        subfileInfos.push(result.value);
400    }
401  } catch (error) {
402    console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message);
403  }
404  ```
405
406## FileInfo.scanfile
407
408scanFile(filter?: Filter) : FileIterator;
409
410Recursively obtains the **FileIterator** object of the files matching the conditions of the filter from a directory synchronously. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
411
412**System capability**: SystemCapability.FileManagement.UserFileService
413
414**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
415
416**Parameters**
417
418| Name| Type| Mandatory| Description|
419| --- | --- | -- | -- |
420| filter | Filter | No| **Filter** object. |
421
422
423**Return value**
424
425| Type| Description|
426| --- | -- |
427| FileIterator | **FileIterator** object obtained.|
428
429**Example**
430
431  ```js
432  // fileInfoDir specifies the target directory.
433  // let filter = {suffix : [".txt", ".jpg", ".xlsx"]};
434  let fileInfoDir = fileInfos[0];
435  let subfileInfos = [];
436  let isDone = false;
437  try {
438    let fileIterator = fileInfoDir.scanFile();
439    // scanFile contains the filter implementation.
440    // let fileIterator = rootInfo.scanFile(filter);
441    if (!fileIterator) {
442      console.error("scanFile interface returns an undefined object");
443      return;
444    }
445    while (!isDone) {
446      let result = fileIterator.next();
447      console.log("next result = " + JSON.stringify(result));
448      isDone = result.done;
449      if (!isDone)
450        subfileInfos.push(result.value);
451    }
452  } catch (error) {
453    console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message);
454  }
455  ```
456
457## FileAccessHelper.createFile
458
459createFile(uri: string, displayName: string) : Promise<string>
460
461Creates a file in a directory. This API uses a promise to return the result.
462
463**System capability**: SystemCapability.FileManagement.UserFileService
464
465**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
466
467**Parameters**
468
469| Name| Type| Mandatory| Description|
470| --- | --- | --- | -- |
471| uri | string | Yes| URI of the parent directory for the file to create.|
472| displayName | string | Yes| Name of the file to create. By default, the name of a local file must contain the file name extension.|
473
474**Return value**
475
476| Type| Description|
477| --- | -- |
478| Promise<string> | Promise used to return the URI of the file created.|
479
480**Example**
481
482  ```js
483  // The media library URI is used as an example.
484  // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo.
485  // You can use the URI obtained.
486  let sourceUri = "datashare:///media/file/6";
487  let displayName = "file1"
488  let fileUri = null;
489  try {
490    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
491    fileUri = await fileAccessHelper.createFile(sourceUri, displayName)
492    if (!fileUri) {
493      console.error("createFile return undefined object");
494      return;
495    }
496    console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri));
497  } catch (error) {
498    console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message);
499  };
500  ```
501
502## FileAccessHelper.createFile
503
504createFile(uri: string, displayName: string, callback: AsyncCallback<string>) : void;
505
506Creates a file in a directory. This API uses an asynchronous callback to return the result.
507
508**System capability**: SystemCapability.FileManagement.UserFileService
509
510**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
511
512**Parameters**
513
514| Name| Type| Mandatory| Description|
515| --- | --- | --- | -- |
516| uri | string | Yes| URI of the parent directory for the file to create.|
517| displayName | string | Yes| Name of the file to create. By default, the name of a local file must contain the file name extension.|
518| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the file created.|
519
520**Example**
521
522  ```js
523  // The media library URI is used as an example.
524  // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo.
525  // You can use the URI obtained.
526  let sourceUri = "datashare:///media/file/6";
527  let displayName = "file1"
528  try {
529    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
530    fileAccessHelper.createFile(sourceUri, displayName, function (err, fileUri) {
531      if (err) {
532        console.error("Failed to createFile in async, errCode:" + err.code + ", errMessage:" + err.message);
533        return;
534      }
535      console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri));
536    });
537  } catch (error) {
538    console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message);
539  };
540  ```
541
542## FileAccessHelper.mkDir
543
544mkDir(parentUri: string, displayName: string) : Promise<string>
545
546Creates a directory. This API uses a promise to return the result.
547
548**System capability**: SystemCapability.FileManagement.UserFileService
549
550**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
551
552**Parameters**
553
554| Name| Type| Mandatory| Description|
555| --- | --- | --- | -- |
556| parentUri | string | Yes| URI of the parent directory for the directory to create.|
557| displayName | string | Yes| Name of the directory to create.|
558
559**Return value**
560
561| Type| Description|
562| --- | -- |
563| Promise<string> | Promise used to return the URI of the directory created.|
564
565**Example**
566
567  ```js
568  // The media library URI is used as an example.
569  // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo.
570  // You can use the URI obtained.
571  let sourceUri = "datashare:///media/file/6";
572  let dirName = "dirTest"
573  let dirUri = null;
574  try {
575    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
576    dirUri = await fileAccessHelper.mkDir(sourceUri, dirName)
577    if (!dirUri) {
578      console.error("mkDir return undefined object");
579      return;
580    }
581    console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri));
582  } catch (error) {
583    console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message);
584  };
585  ```
586
587## FileAccessHelper.mkDir
588
589mkDir(parentUri: string, displayName: string, callback: AsyncCallback<string>) : void;
590
591Creates a directory. This API uses an asynchronous callback to return the result.
592
593**System capability**: SystemCapability.FileManagement.UserFileService
594
595**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
596
597**Parameters**
598
599| Name| Type| Mandatory| Description|
600| --- | --- | --- | -- |
601| parentUri | string | Yes| URI of the parent directory for the directory to create.|
602| displayName | string | Yes| Name of the directory to create.|
603| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the directory created.|
604
605**Example**
606
607  ```js
608  // The media library URI is used as an example.
609  // In the sample code, sourceUri indicates the Download directory. The URI is the URI in fileInfo.
610  // You can use the URI obtained.
611  let sourceUri = "datashare:///media/file/6";
612  let dirName = "dirTest"
613  try {
614    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
615    fileAccessHelper.mkDir(sourceUri, dirName, function (err, dirUri) {
616      if (err) {
617        console.error("Failed to mkDir in async, errCode:" + err.code + ", errMessage:" + err.message);
618        return;
619      }
620      console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri));
621    });
622  } catch (error) {
623    console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message);
624  };
625  ```
626
627## FileAccessHelper.openFile
628
629openFile(uri: string, flags: OPENFLAGS) : Promise<number>
630
631Opens a file. This API uses a promise to return the result.
632
633**System capability**: SystemCapability.FileManagement.UserFileService
634
635**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
636
637**Parameters**
638
639| Name| Type| Mandatory| Description|
640| --- | --- | --- | -- |
641| uri | string | Yes| URI of the file to open.|
642| flags | [OPENFLAGS](#openflags) | Yes| File open mode.|
643
644**Return value**
645
646| Type| Description|
647| --- | -- |
648| Promise<number> | Promise used to return the file descriptor of the file opened.|
649
650**Example**
651
652  ```js
653  // The media library URI is used as an example.
654  //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo.
655  // You can use the URI obtained.
656  let targetUri  = "datashare:///media/file/100";
657  try {
658    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
659    let fd = await fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ);
660  } catch (error) {
661    console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message);
662  };
663  ```
664
665## FileAccessHelper.openFile
666
667openFile(uri: string, flags: OPENFLAGS, callback: AsyncCallback<number>) : void;
668
669Opens a file. This API uses an asynchronous callback to return the result.
670
671**System capability**: SystemCapability.FileManagement.UserFileService
672
673**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
674
675**Parameters**
676
677| Name| Type| Mandatory| Description|
678| --- | --- | --- | -- |
679| uri | string | Yes| URI of the file to open.|
680| flags | [OPENFLAGS](#openflags) | Yes| File open mode.|
681| callback | AsyncCallback<number> | Yes| Callback invoked to return the file descriptor of the file opened.|
682
683**Example**
684
685  ```js
686  // The media library URI is used as an example.
687  //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo.
688  // You can use the URI obtained.
689  let targetUri  = "datashare:///media/file/100";
690  try {
691    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
692    fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ, function (err, fd) {
693      if (err) {
694        console.error("Failed to openFile in async, errCode:" + err.code + ", errMessage:" + err.message);
695        return;
696      }
697      console.log("openFile sucess, fd: " + fd);
698    });
699  } catch (error) {
700    console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message);
701  };
702  ```
703
704## FileAccessHelper.delete
705
706delete(uri: string) : Promise<number>
707
708Deletes a file or directory. This API uses a promise to return the result.
709
710**System capability**: SystemCapability.FileManagement.UserFileService
711
712**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
713
714**Parameters**
715
716| Name| Type| Mandatory| Description|
717| --- | --- | --- | -- |
718| uri | string | Yes| URI of the file or directory to delete.|
719
720**Return value**
721
722| Type| Description|
723| --- | -- |
724| Promise<number&gt | Promise used to return the result.|
725
726**Example**
727
728  ```js
729  // The media library URI is used as an example.
730  //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo.
731  // You can use the URI obtained.
732  let targetUri = "datashare:///media/file/100";
733  try {
734    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
735    let code = await fileAccessHelper.delete(targetUri);
736    if (code != 0)
737      console.error("delete failed, code " + code);
738  } catch (error) {
739    console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message);
740  };
741  ```
742
743## FileAccessHelper.delete
744
745delete(uri: string, callback: AsyncCallback<number>) : void;
746
747Deletes a file or directory. This API uses an asynchronous callback to return the result.
748
749**System capability**: SystemCapability.FileManagement.UserFileService
750
751**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
752
753**Parameters**
754
755| Name| Type| Mandatory| Description|
756| --- | --- | --- | -- |
757| uri | string | Yes| URI of the file or directory to delete.|
758| callback | AsyncCallback<number> | Yes| Promise used to return the result.|
759
760**Example**
761
762  ```js
763  // The media library URI is used as an example.
764  //In the sample code, targetUri indicates a file in the Download directory. The URI is the URI in fileInfo.
765  // You can use the URI obtained.
766  let targetUri = "datashare:///media/file/100";
767  try {
768    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
769    fileAccessHelper.delete(targetUri, function (err, code) {
770      if (err) {
771        console.error("Failed to delete in async, errCode:" + err.code + ", errMessage:" + err.message);
772        return;
773      }
774      console.log("delete sucess, code: " + code);
775    });
776  } catch (error) {
777    console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message);
778  };
779  ```
780
781## FileAccessHelper.move
782
783move(sourceFile: string, destFile: string) : Promise<string>
784
785Moves a file or directory. This API uses a promise to return the result.
786
787**System capability**: SystemCapability.FileManagement.UserFileService
788
789**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
790
791**Parameters**
792
793| Name| Type| Mandatory| Description|
794| --- | --- | --- | -- |
795| sourceFile | string | Yes| URI of the file or directory to move.|
796| destFile | string | Yes| URI of the directory, to which the file or directory will be moved.|
797
798**Return value**
799
800| Type| Description|
801| ----- | ------ |
802| Promise<string> | Promise used to return the URI of the file or directory in the destination directory.|
803
804**Example**
805
806  ```js
807  // The media library URI is used as an example.
808  //In the sample code, sourceFile destFile indicates the file or directory in the Download directory. The URI is the URI in fileInfo.
809  // You can use the URI obtained.
810  let sourceFile = "datashare:///media/file/102";
811  let destFile = "datashare:///media/file/101";
812  try {
813    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
814    let fileUri = await fileAccessHelper.move(sourceFile, destFile);
815    console.log("move sucess, fileUri: " + JSON.stringify(fileUri));
816  } catch (error) {
817    console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message);
818  };
819  ```
820
821## FileAccessHelper.move
822
823move(sourceFile: string, destFile: string, callback: AsyncCallback<string>) : void;
824
825Moves a file or directory. This API uses an asynchronous callback to return the result.
826
827**System capability**: SystemCapability.FileManagement.UserFileService
828
829**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
830
831**Parameters**
832
833| Name| Type| Mandatory| Description|
834| --- | --- | --- | -- |
835| sourceFile | string | Yes| URI of the file or directory to move.|
836| destFile | string | Yes| URI of the  directory, to which the file or  directory will be moved.|
837| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the file or directory in the destination directory.|
838
839**Example**
840
841  ```js
842  // The media library URI is used as an example.
843  //In the sample code, sourceFile destFile indicates the file or directory in the Download directory. The URI is the URI in fileInfo.
844  // You can use the URI obtained.
845  let sourceFile = "datashare:///media/file/102";
846  let destFile = "datashare:///media/file/101";
847  try {
848    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
849    fileAccessHelper.move(sourceFile, destFile, function (err, fileUri) {
850      if (err) {
851        console.error("Failed to move in async, errCode:" + err.code + ", errMessage:" + err.message);
852        return;
853      }
854      console.log("move sucess, fileUri: " + JSON.stringify(fileUri));
855    });
856  } catch (error) {
857    console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message);
858  };
859  ```
860
861## FileAccessHelper.rename
862
863rename(uri: string, displayName: string) : Promise<string>
864
865Renames a file or directory. This API uses a promise to return the result.
866
867**System capability**: SystemCapability.FileManagement.UserFileService
868
869**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
870
871**Parameters**
872
873| Name| Type| Mandatory| Description|
874| --- | --- | --- | -- |
875| uri | string | Yes| URI of the file or directory to rename.|
876| displayName | string | Yes| New name of the file or directory, which can contain the file name extension.|
877
878**Return value**
879
880| Type| Description|
881| --- | -- |
882| Promise<string> | Promise used to return the URI of the renamed file or directory.|
883
884**Example**
885
886  ```js
887  // The media library URI is used as an example.
888  // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo.
889  // You can use the URI obtained.
890  let sourceDir = "datashare:///media/file/100";
891  try {
892    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
893    let DestDir = await fileAccessHelper.rename(sourceDir, "testDir");
894    console.log("rename sucess, DestDir: " + JSON.stringify(DestDir));
895  } catch (error) {
896    console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message);
897  };
898  ```
899
900## FileAccessHelper.rename
901
902rename(uri: string, displayName: string, callback: AsyncCallback<string>) : void;
903
904Renames a file or directory. This API uses an asynchronous callback to return the result.
905
906**System capability**: SystemCapability.FileManagement.UserFileService
907
908**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
909
910**Parameters**
911
912| Name| Type| Mandatory| Description|
913| --- | --- | --- | -- |
914| uri | string | Yes| URI of the file or directory to rename.|
915| displayName | string | Yes| New name of the file or directory, which can contain the file name extension.|
916| callback | AsyncCallback<string> | Yes| Promise used to return the URI of the renamed file or directory.|
917
918**Example**
919
920  ```js
921  // The media library URI is used as an example.
922  // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo.
923  // You can use the URI obtained.
924  let sourceDir = "datashare:///media/file/100";
925  try {
926    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
927    fileAccessHelper.rename(sourceDir, "testDir", function (err, DestDir) {
928      if (err) {
929        console.error("Failed to rename in async, errCode:" + err.code + ", errMessage:" + err.message);
930        return;
931      }
932      console.log("rename sucess, DestDir: " + JSON.stringify(DestDir));
933    });
934  } catch (error) {
935    console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message);
936  };
937  ```
938
939## FileAccessHelper.access
940
941access(sourceFileUri: string) : Promise<boolean>
942
943Checks whether a file or directory exists. This API uses a promise to return the result.
944
945**System capability**: SystemCapability.FileManagement.UserFileService
946
947**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
948
949**Parameters**
950
951| Name| Type| Mandatory| Description|
952| --- | --- | --- | -- |
953| sourceFileUri | string | Yes| URI of the file or directory.|
954
955**Return value**
956
957| Type| Description|
958| --- | -- |
959| Promise<boolean> | Promise used to return the result.|
960
961**Example**
962
963  ```js
964  // The media library URI is used as an example.
965  // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo.
966  // You can use the URI obtained.
967  let sourceDir = "datashare:///media/file/100";
968  try {
969    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
970    let existJudgment = await fileAccessHelper.access(sourceDir);
971    if (existJudgment)
972      console.log("sourceDir exists");
973    else
974      console.log("sourceDir does not exist");
975  } catch (error) {
976    console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message);
977  };
978  ```
979
980## FileAccessHelper.access
981
982access(sourceFileUri: string, callback: AsyncCallback<boolean>) : void;
983
984Checks whether a file or directory exists. This API uses an asynchronous callback to return the result.
985
986**System capability**: SystemCapability.FileManagement.UserFileService
987
988**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
989
990**Parameters**
991
992| Name| Type| Mandatory| Description|
993| --- | --- | --- | -- |
994| sourceFileUri | string | Yes| URI of the file or directory.|
995| callback | AsyncCallback<boolean> | Yes| Promise used to return the result.|
996
997**Example**
998
999  ```js
1000  // The media library URI is used as an example.
1001  // In the sample code, sourceDir indicates a file in the Download directory. The URI is the URI in fileInfo.
1002  // You can use the URI obtained.
1003  let sourceDir = "datashare:///media/file/100";
1004  try {
1005    // Obtain fileAccessHelper by referring to the sample code of fileAccess.createFileAccessHelper.
1006    fileAccessHelper.access(sourceDir, function (err, existJudgment) {
1007      if (err) {
1008        console.error("Failed to access in async, errCode:" + err.code + ", errMessage:" + err.message);
1009        return;
1010      }
1011      if (existJudgment)
1012        console.log("sourceDir exists");
1013      else
1014        console.log("sourceDir does not exist");
1015    });
1016  } catch (error) {
1017    console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message);
1018  };
1019  ```
1020
1021## RootIterator.next
1022
1023next( ) : { value: RootInfo, done: boolean }
1024
1025Obtains the next-level device root directory. **RootIterator** is an iterator object of the device root directory.
1026
1027**System capability**: SystemCapability.FileManagement.UserFileService
1028
1029**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
1030
1031**Return value**
1032
1033| Type| Description|
1034| --- | -- |
1035| {value: RootInfo, done: boolean} | Root directory information obtained. This API traverses the directory until **done** returns **true**. The **value** field contains the root directory information.|
1036
1037## FileIterator.next
1038
1039next( ) : { value: FileInfo, done: boolean }
1040
1041Obtains the information about the next-level file or directory. **FileIterator** is an iterator object of a directory.
1042
1043**System capability**: SystemCapability.FileManagement.UserFileService
1044
1045**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
1046
1047**Return value**
1048
1049| Type| Description|
1050| --- | -- |
1051| {value: FileInfo, done: boolean} | File or directory information obtained. This API traverses the specified directory until **done** returns **true**. The **value** field contains the file or directory information obtained.|
1052
1053## RootInfo
1054
1055Represents the root attribute information and interface capabilities of a device.
1056
1057**System capability**: SystemCapability.FileManagement.UserFileService
1058
1059**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
1060
1061### Attributes
1062
1063| Name| Type  | Readable| Writable| Description    |
1064| ------ | ------ | -------- | ------ | -------- |
1065| deviceType | number | Yes| No|Device type.|
1066| uri | string | Yes| No| Root directory URI of the device.|
1067| displayName | string | Yes| No| Device name.|
1068| deviceFlags | number | Yes| No| Capabilities supported by the device.|
1069
1070## FileInfo
1071
1072Represents the file or directory attribute information and interface capabilities.
1073
1074**System capability**: SystemCapability.FileManagement.UserFileService
1075
1076**Required permissions**: ohos.permission.FILE_ACCESS_MANAGER
1077
1078### Attributes
1079
1080| Name| Type  | Readable| Writable| Description    |
1081| ------ | ------ | -------- | ------ | -------- |
1082| uri | string | Yes| No| URI of the file or directory.|
1083| fileName | string | Yes| No| Name of a file or directory.|
1084| mode | number | Yes| No| Permissions on the file or directory.|
1085| size | number | Yes| No|  Size of the file or directory.|
1086| mtime | number | Yes| No|  Time when the file or directory was last modified.|
1087| mimeType | string | Yes| No|  MIME type of the file or directory.|
1088
1089## OPENFLAGS
1090
1091Enumerates the modes for opening a file.
1092
1093**System capability**: SystemCapability.FileManagement.UserFileService
1094
1095| Name| Value| Description|
1096| ----- | ------ | ------ |
1097| READ | 0o0 | Read mode.|
1098| WRITE | 0o1 | Write mode.|
1099| WRITE_READ | 0o2 | Read/Write mode.|
1100