• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @system.file (文件存储)
2
3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
4> - 从API Version 6开始,该接口不再维护,推荐使用新接口[`@ohos.fileio`](js-apis-fileio.md)。
5>
6> - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7
8
9## 导入模块
10
11
12```
13import file from '@system.file';
14```
15
16
17## file.move
18
19move(Object): void
20
21将指定文件移动到其他指定位置。
22
23**系统能力:** SystemCapability.FileManagement.File.FileIO
24
25**参数:**
26
27| 参数名 | 类型 | 必填 | 说明 |
28| -------- | -------- | -------- | -------- |
29| srcUri | string | 是 | 要移动的文件的uri。字符串最大长度为128,且不能包含“"\*+,:;<=>?[]\|\x7F”等特殊符号。 |
30| dstUri | string | 是 | 文件要移动到的位置的uri。字符串最大长度为128,且不能包含“"\*+,:;<=>?[]\|\x7F”等特殊符号。 |
31| success | Function | 否 | 接口调用成功的回调函数,返回文件要移动到的位置的uri。 |
32| fail | Function | 否 | 接口调用失败的回调函数。 |
33| complete | Function | 否 | 接口调用结束的回调函数。 |
34
35fail返回错误代码:
36
37| 错误码 | 说明 |
38| -------- | -------- |
39| 202 | 出现参数错误。 |
40| 300 | 出现I/O错误。 |
41| 301 | 文件或目录不存在。 |
42
43**示例:**
44
45```
46export default {
47  move() {
48    file.move({
49      srcUri: 'internal://app/myfiles1',
50      dstUri: 'internal://app/myfiles2',
51      success: function(uri) {
52        console.log('call success callback success');
53      },
54      fail: function(data, code) {
55        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
56      },
57    });
58  }
59}
60```
61
62
63## file.copy
64
65copy(Object): void
66
67将指定文件拷贝并存储到指定位置。
68
69**系统能力:** SystemCapability.FileManagement.File.FileIO
70
71**参数:**
72
73| 参数名 | 类型 | 必填 | 说明 |
74| -------- | -------- | -------- | -------- |
75| srcUri | string | 是 | 要拷贝的文件的uri。 |
76| dstUri | string | 是 | 文件要拷贝到的位置的uri。<br/>不支持用应用资源路径或tmp类型的uri。 |
77| success | Function | 否 | 接口调用成功的回调函数,返回文件要拷贝到的位置的uri。 |
78| fail | Function | 否 | 接口调用失败的回调函数。 |
79| complete | Function | 否 | 接口调用结束的回调函数。 |
80
81fail返回错误代码:
82
83| 错误码 | 说明 |
84| -------- | -------- |
85| 202 | 出现参数错误。 |
86| 300 | 出现I/O错误。 |
87| 301 | 文件或目录不存在。 |
88
89**示例:**
90
91```
92export default {
93  copy() {
94    file.copy({
95      srcUri: 'internal://app/file.txt',
96      dstUri: 'internal://app/file_copy.txt',
97      success: function(uri) {
98        console.log('call success callback success');
99      },
100      fail: function(data, code) {
101        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
102      },
103    });
104  }
105}
106```
107
108
109## file.list
110
111list(Object): void
112
113获取指定路径下全部文件的列表。
114
115**系统能力:** SystemCapability.FileManagement.File.FileIO
116
117**参数:**
118
119| 参数名 | 类型 | 必填 | 说明 |
120| -------- | -------- | -------- | -------- |
121| uri | string | 是 | 目录uri。字符串最大长度为128,且不能包含“"\*+,:;&lt;=&gt;?[]\|\x7F”等特殊符号。 |
122| success | Function | 否 | 接口调用成功的回调函数。 |
123| fail | Function | 否 | 接口调用失败的回调函数。 |
124| complete | Function | 否 | 接口调用结束的回调函数。 |
125
126success返回值:
127
128| 参数名 | 类型 | 说明 |
129| -------- | -------- | -------- |
130| fileList | Array&lt;FileInfo&gt; | 获取的文件列表,其中每个文件的信息的格式为:<br/>{<br/>uri:'file1',<br/>lastModifiedTime:1589965924479,<br/>length:10240,<br/>type:&nbsp;'file'<br/>} |
131
132**表1** FileInfo
133
134| 参数名 | 类型 | 说明 |
135| -------- | -------- | -------- |
136| uri | string | 文件的&nbsp;uri。 |
137| lastModifiedTime | number | 文件上一次保存时的时间戳,显示从1970/01/01&nbsp;00:00:00&nbsp;GMT到当前时间的毫秒数。 |
138| length | number | 文件的大小,单位为字节。 |
139| type | string | 文件的类型,可选值为:<br/>-&nbsp;dir:目录;<br/>-&nbsp;file:文件。 |
140
141fail返回错误代码:
142
143| 错误码 | 说明 |
144| -------- | -------- |
145| 202 | 出现参数错误。 |
146| 300 | 出现I/O错误。 |
147| 301 | 文件或目录不存在。 |
148
149**示例:**
150
151```
152export default {
153  list() {
154    file.list({
155      uri: 'internal://app/pic',
156      success: function(data) {
157        console.log(JSON.stringify(data.fileList));
158      },
159      fail: function(data, code) {
160        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
161      },
162    });
163  }
164}
165```
166
167
168## file.get
169
170get(Object): void
171
172获取指定本地文件的信息。
173
174**系统能力:** SystemCapability.FileManagement.File.FileIO
175
176**参数:**
177
178| 参数名 | 类型 | 必填 | 说明 |
179| -------- | -------- | -------- | -------- |
180| uri | string | 是 | 文件的uri。 |
181| recursive | boolean | 否 | 是否进行递归获取子目录文件列表,缺省为false。 |
182| success | Function | 否 | 接口调用成功的回调函数。 |
183| fail | Function | 否 | 接口调用失败的回调函数。 |
184| complete | Function | 否 | 接口调用结束的回调函数。 |
185
186success返回值:
187
188| 参数名 | 类型 | 说明 |
189| -------- | -------- | -------- |
190| uri | string | 文件的uri。 |
191| length | number | 文件字节长。 |
192| lastModifiedTime | number | 文件保存时的时间戳,从1970/01/01&nbsp;00:00:00到当前时间的毫秒数。 |
193| type | string | 文件类型,可选值为:<br/>-&nbsp;dir:目录;<br/>-&nbsp;file:文件。 |
194| subFiles | Array | 文件列表。 |
195
196fail返回错误代码:
197
198| 错误码 | 说明 |
199| -------- | -------- |
200| 202 | 出现参数错误。 |
201| 300 | 出现I/O错误。 |
202| 301 | 文件或目录不存在。 |
203
204**示例:**
205
206```
207export default {
208  get() {
209    file.get({
210      uri: 'internal://app/file',
211      success: function(data) {
212        console.log(data.uri);
213      },
214      fail: function(data, code) {
215        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
216      },
217    });
218  }
219}
220```
221
222
223## file.delete
224
225delete(Object): void
226
227删除本地文件。
228
229**系统能力:** SystemCapability.FileManagement.File.FileIO
230
231**参数:**
232
233| 参数名 | 类型 | 必填 | 说明 |
234| -------- | -------- | -------- | -------- |
235| uri | string | 是 | 删除文件的uri,不能是应用资源路径。 |
236| success | Function | 否 | 接口调用成功的回调函数。 |
237| fail | Function | 否 | 接口调用失败的回调函数。 |
238| complete | Function | 否 | 接口调用结束的回调函数。 |
239
240fail返回错误代码:
241
242| 错误码 | 说明 |
243| -------- | -------- |
244| 202 | 参数错误。 |
245| 300 | I/O错误。 |
246| 301 | 文件或目录不存在。 |
247
248**示例:**
249
250```
251export default {
252  delete() {
253    file.delete({
254      uri: 'internal://app/my_file',
255      success: function() {
256        console.log('call delete success.');
257      },
258      fail: function(data, code) {
259        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
260      },
261    });
262  }
263}
264```
265
266
267## file.writeText
268
269writeText(Object): void
270
271写文本内容到指定文件。仅支持文本文档读写。
272
273**系统能力:** SystemCapability.FileManagement.File.FileIO
274
275**参数:**
276
277| 参数名 | 类型 | 必填 | 说明 |
278| -------- | -------- | -------- | -------- |
279| uri | string | 是 | 本地文件uri,如果文件不存在会创建文件。 |
280| text | string | 是 | 写入的字符串。 |
281| encoding | string | 否 | 编码格式,默认为UTF-8。 |
282| append | boolean | 否 | 是否追加模式,默认为false。 |
283| success | Function | 否 | 接口调用成功的回调函数。 |
284| fail | Function | 否 | 接口调用失败的回调函数。 |
285| complete | Function | 否 | 接口调用结束的回调函数。 |
286
287fail返回错误代码:
288
289| 错误码 | 说明 |
290| -------- | -------- |
291| 202 | 参数错误。 |
292| 300 | I/O错误。 |
293
294**示例:**
295
296```
297export default {
298  writeText() {
299    file.writeText({
300      uri: 'internal://app/test.txt',
301      text: 'Text that just for test.',
302      success: function() {
303        console.log('call writeText success.');
304      },
305      fail: function(data, code) {
306        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
307      },
308    });
309  }
310}
311```
312
313
314## file.writeArrayBuffer
315
316writeArrayBuffer(Object): void
317
318写Buffer内容到指定文件。仅支持文本文档读写。
319
320**系统能力:** SystemCapability.FileManagement.File.FileIO
321
322**参数:**
323
324| 参数名 | 类型 | 必填 | 说明 |
325| -------- | -------- | -------- | -------- |
326| uri | string | 是 | 本地文件uri,如果文件不存在会创建文件。 |
327| buffer | Uint8Array | 是 | 写入的Buffer。 |
328| position | number | 否 | 文件开始写入数据的位置的偏移量,默认为0。 |
329| append | boolean | 否 | 是否追加模式,默认为false。当设置为true时,position参数无效。 |
330| success | Function | 否 | 接口调用成功的回调函数。 |
331| fail | Function | 否 | 接口调用失败的回调函数。 |
332| complete | Function | 否 | 接口调用结束的回调函数。 |
333
334fail返回错误代码:
335
336| 错误码 | 说明 |
337| -------- | -------- |
338| 202 | 出现参数错误。 |
339| 300 | 出现I/O错误。 |
340
341**示例:**
342
343```
344export default {
345  writeArrayBuffer() {
346    file.writeArrayBuffer({
347      uri: 'internal://app/test',
348      buffer: new Uint8Array(8), //buffer为Uint8Array类型
349      success: function() {
350        console.log('call writeArrayBuffer success.');
351      },
352      fail: function(data, code) {
353        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
354      },
355    });
356  }
357}
358```
359
360
361## file.readText
362
363readText(Object): void
364
365从指定文件中读取文本内容。仅支持文本文档读写。
366
367**系统能力:** SystemCapability.FileManagement.File.FileIO
368
369**参数:**
370
371| 参数名 | 类型 | 必填 | 说明 |
372| -------- | -------- | -------- | -------- |
373| uri | string | 是 | 本地文件uri。 |
374| encoding | string | 否 | 编码格式,缺省为UTF-8。 |
375| position | number | 否 | 读取的起始位置,默认值为文件的起始位置。 |
376| length | number | 否 | 读取的长度,默认值为4096。 |
377| success | Function | 否 | 接口调用成功的回调函数。 |
378| fail | Function | 否 | 接口调用失败的回调函数。 |
379| complete | Function | 否 | 接口调用结束的回调函数。 |
380
381success返回值:
382
383| 参数名 | 类型 | 说明 |
384| -------- | -------- | -------- |
385| text | string | 读取到的文本内容。 |
386
387fail返回错误代码:
388
389| 错误码 | 说明 |
390| -------- | -------- |
391| 202 | 出现参数错误。 |
392| 300 | 出现I/O错误。 |
393| 301 | 文件或目录不存在。 |
394| 302 | 要读取的文件内容超过4KB。 |
395
396**示例:**
397
398```
399export default {
400  readText() {
401    file.readText({
402      uri: 'internal://app/text.txt',
403      success: function(data) {
404        console.log('call readText success: ' + data.text);
405      },
406      fail: function(data, code) {
407        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
408      },
409    });
410  }
411}
412```
413
414
415## file.readArrayBuffer
416
417readArrayBuffer(Object): void
418
419从指定文件中读取Buffer内容。仅支持文本文档读写。
420
421**系统能力:** SystemCapability.FileManagement.File.FileIO
422
423**参数:**
424
425| 参数名 | 类型 | 必填 | 说明 |
426| -------- | -------- | -------- | -------- |
427| uri | string | 是 | 本地文件uri。 |
428| position | number | 否 | 读取的起始位置,缺省为文件的起始位置。 |
429| length | number | 否 | 需要读取的长度,缺省则读取到文件结尾。 |
430| success | Function | 否 | 接口调用成功的回调函数。 |
431| fail | Function | 否 | 接口调用失败的回调函数。 |
432| complete | Function | 否 | 接口调用结束的回调函数。 |
433
434success返回值:
435
436| 参数名 | 类型 | 说明 |
437| -------- | -------- | -------- |
438| buffer | Uint8Array | 读取到的文件内容。 |
439
440fail返回错误代码:
441
442| 错误码 | 说明 |
443| -------- | -------- |
444| 202 | 出现参数错误。 |
445| 300 | 出现I/O错误。 |
446| 301 | 文件或目录不存在。 |
447
448**示例:**
449
450```
451export default {
452  readArrayBuffer() {
453    file.readArrayBuffer({
454      uri: 'internal://app/test',
455      position: 10,
456      length: 200,
457      success: function(data) {
458        console.log('call readArrayBuffer success: ' + data.buffer);
459      },
460      fail: function(data, code) {
461        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
462      },
463    });
464  }
465}
466```
467
468
469## file.access
470
471access(Object): void
472
473判断指定文件或目录是否存在。
474
475**系统能力:** SystemCapability.FileManagement.File.FileIO
476
477**参数:**
478
479| 参数名 | 类型 | 必填 | 说明 |
480| -------- | -------- | -------- | -------- |
481| uri | string | 是 | 目录或文件uri。 |
482| success | Function | 否 | 接口调用成功的回调函数。 |
483| fail | Function | 否 | 接口调用失败的回调函数。 |
484| complete | Function | 否 | 接口调用结束的回调函数。 |
485
486fail返回错误代码:
487
488| 错误码 | 说明 |
489| -------- | -------- |
490| 202 | 出现参数错误。 |
491| 300 | 出现I/O&nbsp;错误。 |
492| 301 | 文件或目录不存在。 |
493
494**示例:**
495
496```
497export default {
498  access() {
499    file.access({
500      uri: 'internal://app/test',
501      success: function() {
502        console.log('call access success.');
503      },
504      fail: function(data, code) {
505        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
506      },
507    });
508  }
509}
510```
511
512
513## file.mkdir
514
515mkdir(Object): void
516
517创建指定目录。
518
519**系统能力:** SystemCapability.FileManagement.File.FileIO
520
521**参数:**
522
523| 参数名 | 类型 | 必填 | 说明 |
524| -------- | -------- | -------- | -------- |
525| uri | string | 是 | 目录的uri路径。 |
526| recursive | boolean | 否 | 是否递归创建该目录的上级目录,缺省为false。 |
527| success | Function | 否 | 接口调用成功的回调函数。 |
528| fail | Function | 否 | 接口调用失败的回调函数。 |
529| complete | Function | 否 | 接口调用结束的回调函数。 |
530
531fail返回错误代码:
532
533| 错误码 | 说明 |
534| -------- | -------- |
535| 202 | 出现参数错误。 |
536| 300 | 出现I/O&nbsp;错误。 |
537
538**示例:**
539
540```
541export default {
542  mkdir() {
543    file.mkdir({
544      uri: 'internal://app/test_directory',
545      success: function() {
546        console.log('call mkdir success.');
547      },
548      fail: function(data, code) {
549        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
550      },
551    });
552  }
553}
554```
555
556
557## file.rmdir
558
559rmdir(Object): void
560
561删除指定目录。
562
563**系统能力:** SystemCapability.FileManagement.File.FileIO
564
565**参数:**
566
567| 参数名 | 类型 | 必填 | 说明 |
568| -------- | -------- | -------- | -------- |
569| uri | string | 是 | 目录的uri路径。 |
570| recursive | boolean | 否 | 是否递归删除子文件和子目录,缺省为false。 |
571| success | Function | 否 | 接口调用成功的回调函数。 |
572| fail | Function | 否 | 接口调用失败的回调函数。 |
573| complete | Function | 否 | 接口调用结束的回调函数。 |
574
575fail返回错误代码:
576
577| 错误码 | 说明 |
578| -------- | -------- |
579| 202 | 出现参数错误。 |
580| 300 | 出现I/O&nbsp;错误。 |
581| 301 | 文件或目录不存在。 |
582
583**示例:**
584
585```
586export default {
587  rmdir() {
588    file.rmdir({
589      uri: 'internal://app/test_directory',
590      success: function() {
591        console.log('call rmdir success.');
592      },
593      fail: function(data, code) {
594        console.error('call fail callback fail, code: ' + code + ', data: ' + data);
595      },
596    });
597  }
598}
599```