• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.file.volumeManager (卷管理)
2
3该模块提供卷设备、磁盘设备查询和管理的相关功能:包括查询卷设备信息,对卷设备的挂载卸载、对磁盘设备分区以及卷设备的格式化等功能。
4
5> **说明:**
6>
7> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> - 本模块接口为系统接口。
9> - 本模块支持对错误码进行处理,错误码及其适配方式[参考文档](../errorcodes/errorcode-filemanagement.md#错误码适配指导)。
10
11## 导入模块
12
13```js
14import volumemanager from "@ohos.file.volumeManager";
15```
16
17## volumemanager.getAllVolumes
18
19getAllVolumes(): Promise<Array<Volume>>
20
21异步获取当前外置存储中所有卷设备信息,以promise方式返回。
22
23**需要权限**:ohos.permission.STORAGE_MANAGER
24
25**系统能力**:SystemCapability.FileManagement.StorageService.Volume
26
27**返回值:**
28
29  | 类型                               | 说明                       |
30  | ---------------------------------- | -------------------------- |
31  | Promise<[Volume](#volume)[]> | 返回当前所有可获得的卷设备信息 |
32
33**示例:**
34
35  ```js
36  volumemanager.getAllVolumes().then(function(volumes){
37      // do something
38  }).catch(function(error){
39    console.info("getAllVolumes failed");
40  });
41  ```
42
43## volumemanager.getAllVolumes
44
45getAllVolumes(callback: AsyncCallback<Array<Volume>>): void
46
47异步获取当前外置存储中所有卷设备信息,以callback方式返回。
48
49**需要权限**:ohos.permission.STORAGE_MANAGER
50
51**系统能力**:SystemCapability.FileManagement.StorageService.Volume
52
53**参数:**
54
55  | 参数名   | 类型                                              | 必填 | 说明                                 |
56  | -------- | ------------------------------------------------- | ---- | ------------------------------------ |
57  | callback | AsyncCallback<[Volume](#volume)[]> | 是   | 获取当前所有可获得的卷设备信息之后的回调 |
58
59**示例:**
60
61  ```js
62  let uuid = "";
63  volumemanager.getAllVolumes(function(error, volumes){
64      // do something
65  });
66  ```
67
68
69## volumemanager.mount
70
71mount(volumeId: string): Promise<void>
72
73异步挂载指定卷设备,以promise方式返回。当前仅支持fat、exfat以及ntfs三中文件系统的卷设备挂载。
74
75**需要权限**:ohos.permission.MOUNT_UNMOUNT_MANAGER
76
77**系统能力**:SystemCapability.FileManagement.StorageService.Volume
78
79**参数:**
80
81  | 参数名   | 类型   | 必填 | 说明 |
82  | -------- | ------ | ---- | ---- |
83  | volumeId | string | 是   | 卷设备id |
84
85**返回值:**
86
87  | 类型                   | 说明       |
88  | ---------------------- | ---------- |
89  | Promise<void> | 挂载指定卷设备 |
90
91**示例:**
92
93  ```js
94  let volumeId = "";
95  volumemanager.mount(volumeId).then(function(){
96      // do something
97  }).catch(function(error){
98    console.info("mount failed");
99  });
100  ```
101
102## volumemanager.mount
103
104mount(volumeId: string, callback:AsyncCallback<void>):void
105
106异步挂载指定卷设备,以callback方式返回。当前仅支持fat、exfat以及ntfs三中文件系统的卷设备挂载。
107
108**需要权限**:ohos.permission.MOUNT_UNMOUNT_MANAGER
109
110**系统能力**:SystemCapability.FileManagement.StorageService.Volume
111
112**参数:**
113
114  | 参数名   | 类型                                  | 必填 | 说明                 |
115  | -------- | ------------------------------------- | ---- | -------------------- |
116  | volumeId | string                                | 是   | 卷设备id                 |
117  | callback | AsyncCallback<void> | 是   | 挂载指定卷设备之后的回调 |
118
119**示例:**
120
121  ```js
122  let volumeId = "";
123  volumemanager.mount(volumeId, function(error){
124      // do something
125  });
126  ```
127
128## volumemanager.unmount
129
130unmount(volumeId: string): Promise<void>
131
132异步卸载指定卷设备,以promise方式返回。
133
134**需要权限**:ohos.permission.MOUNT_UNMOUNT_MANAGER
135
136**系统能力**:SystemCapability.FileManagement.StorageService.Volume
137
138**参数:**
139
140  | 参数名   | 类型   | 必填 | 说明 |
141  | -------- | ------ | ---- | ---- |
142  | volumeId | string | 是   | 卷设备id |
143
144**返回值:**
145
146  | 类型                   | 说明       |
147  | ---------------------- | ---------- |
148  | Promise<void> | 卸载指定卷设备 |
149
150**示例:**
151
152  ```js
153  let volumeId = "";
154  volumemanager.unmount(volumeId).then(function(){
155      // do something
156  }).catch(function(error){
157    console.info("mount failed");
158  });
159  ```
160
161## volumemanager.unmount
162
163unmount(volumeId: string, callback: AsyncCallback<void>): void
164
165异步卸载指定卷设备,以callback方式返回。
166
167**需要权限**:ohos.permission.MOUNT_UNMOUNT_MANAGER
168
169**系统能力**:SystemCapability.FileManagement.StorageService.Volume
170
171**参数:**
172
173  | 参数名   | 类型                                  | 必填 | 说明                 |
174  | -------- | ------------------------------------- | ---- | -------------------- |
175  | volumeId | string                                | 是   | 卷设备id                 |
176  | callback | AsyncCallback<void> | 是   | 卸载指定卷设备之后的回调 |
177
178**示例:**
179
180  ```js
181  let volumeId = "";
182  volumemanager.unmount(volumeId, function(error){
183      // do something
184  });
185  ```
186
187## volumemanager.getVolumeByUuid
188
189getVolumeByUuid(uuid: string): Promise<Volume>
190
191异步通过卷设备uuid获得指定卷设备信息,以promise方式返回。
192
193**需要权限**:ohos.permission.STORAGE_MANAGER
194
195**系统能力**:SystemCapability.FileManagement.StorageService.Volume
196
197**参数:**
198
199  | 参数名   | 类型   | 必填 | 说明 |
200  | -------- | ------ | ---- | ---- |
201  | uuid | string | 是   | 卷设备uuid |
202
203**返回值:**
204
205  | 类型                               | 说明                       |
206  | ---------------------------------- | -------------------------- |
207  | Promise<[Volume](#volume)> | 返回当前所有可获得的卷设备信息 |
208
209**示例:**
210
211  ```js
212  let uuid = "";
213  volumemanager.getVolumeByUuid(uuid).then(function(volume) {
214      console.info("getVolumeByUuid successfully:" + JSON.stringify(volume));
215  }).catch(function(error){
216      console.info("getVolumeByUuid failed with error:"+ error);
217  });
218  ```
219
220## volumemanager.getVolumeByUuid
221
222getVolumeByUuid(uuid: string, callback: AsyncCallback<Volume>): void
223
224异步通过卷设备uuid获得指定卷设备信息,以callback方式返回。
225
226**需要权限**:ohos.permission.STORAGE_MANAGER
227
228**系统能力**:SystemCapability.FileManagement.StorageService.Volume
229
230**参数:**
231
232  | 参数名    | 类型                                                 | 必填 | 说明                 |
233  | -------- | ------------------------------------------------ | ---- | -------------------- |
234  | uuid | string                                                 | 是   | 卷设备uuid                 |
235  | callback | AsyncCallback<[Volume](#volume)>  | 是   | 获取卷设备信息之后的回调 |
236
237**示例:**
238
239  ```js
240  let uuid = "";
241  volumemanager.getVolumeByUuid(uuid, (error, volume) => {
242      // do something
243  });
244  ```
245
246## volumemanager.getVolumeById
247
248getVolumeById(volumeId: string): Promise<Volume>
249
250异步通过卷设备id获得指定卷设备信息,以promise方式返回。
251
252**需要权限**:ohos.permission.STORAGE_MANAGER
253
254**系统能力**:SystemCapability.FileManagement.StorageService.Volume
255
256**参数:**
257
258  | 参数名    | 类型    | 必填  | 说明 |
259  | -------- | ------ | ---- | ---- |
260  | volumeId | string | 是   | 卷设备id |
261
262**返回值:**
263
264  | 类型                               | 说明                       |
265  | ---------------------------------- | -------------------------- |
266  | Promise<[Volume](#volume)> | 返回当前所有可获得的卷设备信息 |
267
268**示例:**
269
270  ```js
271  let volumeId = "";
272  volumemanager.getVolumeById(volumeId).then(function(volume) {
273      console.info("getVolumeById successfully:" + JSON.stringify(volume));
274  }).catch(function(error){
275      console.info("getVolumeById failed with error:"+ error);
276  });
277  ```
278
279## volumemanager.getVolumeById
280
281getVolumeById(volumeId: string, callback: AsyncCallback<Volume>): void
282
283异步通过指定卷设备id获得卷设备信息,以callback方式返回。
284
285**需要权限**:ohos.permission.STORAGE_MANAGER
286
287**系统能力**:SystemCapability.FileManagement.StorageService.Volume
288
289**参数:**
290
291  | 参数名   | 类型                      | 必填 | 说明                          |
292  | -------- | ------------------------- | ---- | ----------------------------- |
293  | volumeId | string                    | 是   | 卷设备id                |
294  | callback | AsyncCallback<[Volume](#volume)> | 是   | 获取卷设备信息之后的回调  |
295
296**示例:**
297
298  ```js
299  let volumeId = "";
300  volumemanager.getVolumeById(volumeId, (error, volume) => {
301      // do something
302  });
303  ```
304
305## volumemanager.setVolumeDescription
306
307setVolumeDescription(uuid: string, description: string): Promise<void>
308
309异步修改指定卷设备描述,以promise方式返回。
310
311**需要权限**:ohos.permission.MOUNT_UNMOUNT_MANAGER
312
313**系统能力**:SystemCapability.FileManagement.StorageService.Volume
314
315**参数:**
316
317  | 参数名     | 类型   | 必填 | 说明 |
318  | --------- | ------ | ---- | ---- |
319  | uuid      | string | 是   | 卷设备uuid |
320  | description | string | 是   | 卷设备描述 |
321
322**返回值:**
323
324  | 类型                    | 说明                       |
325  | ---------------------- | -------------------------- |
326  | Promise<void> | 设置卷设备信息                  |
327
328**示例:**
329
330  ```js
331  let uuid = "";
332  let description = "";
333  volumemanager.setVolumeDescription(uuid, description).then(function() {
334      console.info("setVolumeDescription successfully");
335  }).catch(function(error){
336      console.info("setVolumeDescription failed with error:"+ error);
337  });
338  ```
339
340## volumemanager.setVolumeDescription
341
342setVolumeDescription(uuid: string, description: string, callback: AsyncCallback<void>): void
343
344异步修改指定卷设备描述,以callback方式返回。
345
346**需要权限**:ohos.permission.MOUNT_UNMOUNT_MANAGER
347
348**系统能力**:SystemCapability.FileManagement.StorageService.Volume
349
350**参数:**
351
352  | 参数名      | 类型                                     | 必填 | 说明              |
353  | ---------- | --------------------------------------- | ---- | ---------------- |
354  | uuid       | string                                  | 是   | 卷设备uuid            |
355  | description | string                                 | 是   | 卷设备描述            |
356  | callback   | AsyncCallback<void>   | 是   | 设置卷描述之后的回调 |
357
358**示例:**
359
360  ```js
361  let uuid = "";
362  let description = "";
363  volumemanager.setVolumeDescription(uuid, description, (error) => {
364      // do something
365  });
366  ```
367
368## volumemanager.format
369
370format(volumeId: string, fsType: string): Promise<void>
371
372异步对指定卷设备进行格式化,以promise方式返回。当前仅支持vfat和exfat两种文件系统类型的格式化,只有处于卸载状态的卷设备可以进行格式化,格式化后卷设备的uuid、挂载路径和卷设备描述均会发生变化。
373
374**需要权限**:ohos.permission.MOUNT_FORMAT_MANAGER
375
376**系统能力**:SystemCapability.FileManagement.StorageService.Volume
377
378**参数:**
379
380  | 参数名       | 类型   | 必填 | 说明 |
381  | ----------- | ------ | ---- | ---- |
382  | volumeId    | string | 是   | 卷设备id |
383  | fsType    | string | 是   | 文件系统类型(vfat或者exfat) |
384
385**返回值:**
386
387  | 类型                   | 说明       |
388  | ---------------------- | ---------- |
389  | Promise<void> | 对指定卷设备进行格式化 |
390
391**示例:**
392
393  ```js
394  let volumeId = "";
395  let fsType = "";
396  volumemanager.format(volumeId, fsType).then(function() {
397      console.info("format successfully");
398  }).catch(function(error){
399      console.info("format failed with error:"+ error);
400  });
401  ```
402
403## volumemanager.format
404
405format(volumeId: string, fsType: string, callback: AsyncCallback<void>): void
406
407异步对指定卷设备进行格式化,以callback方式返回。当前仅支持vfat和exfat两种文件系统类型的格式化,只有处于卸载状态的卷设备可以进行格式化,格式化后卷设备的uuid、挂载路径和卷设备描述均会发生变化。
408
409**需要权限**:ohos.permission.MOUNT_FORMAT_MANAGER
410
411**系统能力**:SystemCapability.FileManagement.StorageService.Volume
412
413**参数:**
414
415  | 参数名   | 类型                      | 必填 | 说明                          |
416  | -------- | ------------------------- | ---- | ----------------------------- |
417  | volumeId | string                    | 是   | 卷设备id                |
418  | fsType    | string | 是   | 文件系统类型(vfat或者exfat) |
419  | callback | AsyncCallback<void>  | 是   | 对指定卷设备格式化后的回调  |
420
421**示例:**
422
423  ```js
424  let volumeId = "";
425  let fsType = "";
426  volumemanager.format(volumeId, fsType, (error) => {
427      // do something
428  });
429  ```
430
431## volumemanager.partition
432
433partition(diskId: string, type: number): Promise<void>
434
435异步对磁盘设备进行分区,以promise方式返回。当前仅支持将磁盘设备重新分区为一个分区,系统是支持读取多分区的磁盘设备。
436
437**需要权限**:ohos.permission.MOUNT_FORMAT_MANAGER
438
439**系统能力**:SystemCapability.FileManagement.StorageService.Volume
440
441**参数:**
442
443  | 参数名       | 类型   | 必填 | 说明 |
444  | ----------- | ------ | ---- | ---- |
445  | diskId    | string | 是   | 卷设备所属的磁盘设备id |
446  | type      | number | 是   | 分区类型    |
447
448**返回值:**
449
450  | 类型                      | 说明                       |
451   | --------------------- | ----------------------- |
452  | Promise<void>   | 对磁盘进行分区              |
453
454**示例:**
455
456  ```js
457  let diskId = "";
458  let type = 0;
459  volumemanager.partition(diskId, type).then(function() {
460      console.info("partition successfully");
461  }).catch(function(error){
462      console.info("partition failed with error:"+ error);
463  });
464  ```
465
466## volumemanager.partition
467
468partition(diskId: string, type: number, callback: AsyncCallback<void>): void
469
470异步对磁盘进行分区,以callback方式返回。当前仅支持将磁盘设备重新分区为一个分区,系统是支持读取多分区的磁盘设备。
471
472**需要权限**:ohos.permission.MOUNT_FORMAT_MANAGER
473
474**系统能力**:SystemCapability.FileManagement.StorageService.Volume
475
476**参数:**
477
478  | 参数名      | 类型                                   | 必填 | 说明              |
479  | -------- | --------------------------------------- | ---- | ---------------- |
480  | diskId   | string                                  | 是   | 卷设备所属的磁盘id      |
481  | type     | number                                  | 是   | 分区类型           |
482  | callback | AsyncCallback<void>   | 是   | 对磁盘设备进行分区      |
483
484**示例:**
485
486  ```js
487  let diskId = "";
488  let type = 0;
489  volumemanager.partition(diskId, type, (error) => {
490      // do something
491  });
492  ```
493
494## Volume
495
496**系统能力**:以下各项对应的系统能力均为SystemCapability.FileManagement.StorageService.Volume497
498### 属性
499
500| 名称         | 类型    | 可读   | 可写   | 说明                 |
501| ----------- | ------- | ------- | ----- | -------------------- |
502| id          | string  | 是 | 否 | 卷设备ID的格式为vol-{主设备号}-{次设备号},主设备号用来区分不同种类的设备,次设备号用来区分同一类型的多个设备,卷设备ID会随着插卡顺序不同而变化。                 |
503| uuid        | string  | 是 | 否 | 卷设备uuid是卷设备的通用唯一识别码,不会随着插卡顺序变化而变化,但是卷设备的格式化会改变卷设备的uuid               |
504| diskId      | string  | 是 | 否 | 卷设备所属的磁盘ID,一个磁盘可以有一个或者多个卷设备。磁盘设备ID好格式为disk-{主设备号}-{次设备号},与卷设备ID相似。        |
505| description | string  | 是 | 否 | 卷设备描述、           |
506| removable   | boolean | 是 | 否 | 表示卷设备是否可移除,当前仅支持可移除存储设备、 |
507| state       | number  | 是 | 否 | 卷设备状态标识:<br>0:卸载状态 UNMOUNTED<br> 1:检查状态 CHECKING<br> 2:挂载状态 MOUNTED<br> 3:正在弹出状态 EJECTING          |
508| path        | string  | 是 | 否 | 卷设备的挂载地址,一般为/mnt/external/{uuid}         |