自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OpenHarmony源碼解析之JavaScript(文件管理API)

開(kāi)發(fā) 前端
文件管理在手機(jī)、平板、智慧屏等設(shè)備上都是一個(gè)很重要的功能,通過(guò)文件管理相關(guān) API 我們可以實(shí)現(xiàn)對(duì)指定文件的刪除、復(fù)制、移動(dòng)、壓縮解壓縮等操作。

[[436543]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1、簡(jiǎn)介

文件管理在手機(jī)、平板、智慧屏等設(shè)備上都是一個(gè)很重要的功能,通過(guò)文件管理相關(guān) API 我們可以實(shí)現(xiàn)對(duì)指定文件的刪除、復(fù)制、移動(dòng)、壓縮解壓縮等操作。本篇文章通過(guò)一個(gè)小DEMO來(lái)演示該如何使用官方提供的API來(lái)實(shí)現(xiàn)對(duì)指定文件的相關(guān)操作。

1.1 OpenHarmony架構(gòu)圖

 OpenHarmony 源碼解析之JavaScript(文件管理API)-鴻蒙HarmonyOS技術(shù)社區(qū)

1.2 文件管理Demo效果演示

2、基礎(chǔ)知識(shí)

注意:

API Version 6 開(kāi)始支持。

目前只能對(duì)應(yīng)用私有目錄下的文件操作權(quán)限,想實(shí)現(xiàn)類似文件管理的應(yīng)用還需等更高權(quán)限的開(kāi)放。

2.1 主要API

 OpenHarmony 源碼解析之JavaScript(文件管理API)-鴻蒙HarmonyOS技術(shù)社區(qū)

2.2 參考資料

HarmonyOS js-apis-fileio( 文件管理)

OpenHarmony js-apis-fileio.md( 文件管理)

3、示例Demo

目前文件管理API支持在手機(jī)、平板、智慧屏上調(diào)用,暫不支持智能穿戴設(shè)備上調(diào)用。使用該功能模塊對(duì)文件/目錄進(jìn)行操作前,需要先獲取其絕對(duì)路徑,獲取方式及其接口用法請(qǐng)參考Ability上下文。

3.1 獲取Ability上下文

在使用AbilityContext的功能前,需要通過(guò)getContext()先獲取Context對(duì)象。在使用AbilityContext的功能前,需要通過(guò)getContext()先獲取Context對(duì)象。

示例

  1. import ability_featureability from '@ohos.ability.featureAbility' 
  2. var context = ability_featureability.getContext();   

3.2 獲取應(yīng)用目錄路徑

目錄類型如下圖所示:

 OpenHarmony 源碼解析之JavaScript(文件管理API)-鴻蒙HarmonyOS技術(shù)社區(qū)

“文件/目錄絕對(duì)路徑”=“應(yīng)用目錄路徑”+“文件/目錄名”,通過(guò)上述接口獲取到應(yīng)用目錄路徑dir,文件名為“xxx.txt”,文件所在絕對(duì)路徑為:

let path = dir + "xxx.txt";

示例

  1. context.getFilesDir() 
  2.           .then((data) => { 
  3.               console.info('Cache directory obtained. Data: ' + data + "getFilesDir"); 
  4.               this.filePath = data; 
  5.               this.mDirPath = this.filePath + "/cache_files/"
  6.               this.findFile(); 
  7.           }).catch((error) => { 
  8.           console.error('Failed to obtain the cache directory. Cause:' + error.message); 
  9.       }) 

3.3 創(chuàng)建測(cè)試文件

在對(duì)文件操作之前我們首先創(chuàng)建幾個(gè)測(cè)試文件,通過(guò)以下代碼就可以成功創(chuàng)建文件

示例

  1. createTestFiles() { 
  2.        for (let i = 0;i < 4; i++) { 
  3.            file.writeText({ 
  4.                uri: 'internal://app//cache_files/' + "file-manager-test" + i + ".txt"
  5.                text: 'Text that just for test.' + i, 
  6.                success: function () { 
  7.                    console.log('call writeText success.'); 
  8.                }, 
  9.                fail: function (data, code) { 
  10.                    console.error('call fail callback fail, code: ' + code + ', data: ' + data); 
  11.                }, 
  12.            }); 
  13.        } 
  14.    } 

3.4 導(dǎo)入文件管理模塊

  1. import fileio from '@ohos.fileio'

3.5 獲取文件詳細(xì)信息

以異步方法獲取文件信息,使用callback形式返回結(jié)果

  1. fileio.stat(path, function (err, stat) {     
  2.     }); 

 以同步方法獲取文件的信息

  1. let stat = fileio.statSync(path); 

 以異步方式為例,我們可以獲取到文件的大小等信息,代碼如下:

  1. let path = that.mDirPath + any[i].uri.substring(index + 1); 
  2.                       fileio.stat(path, function (err, stat) { 
  3.                           console.info("Get file stat success:" + "fileSize:" + stat.size + 
  4.                           "-------" + "fileName:" + any[i].uri.substring(index + 1)); 
  5.                       }); 

 日志截圖如下:

 OpenHarmony 源碼解析之JavaScript(文件管理API)-鴻蒙HarmonyOS技術(shù)社區(qū)

3.6 刪除文件

以異步方法刪除文件,使用callback形式返回結(jié)果

  1. fileio.unlink(path, function(err) { 
  2.     if (!err) { 
  3.         // 文件刪除成功 
  4.     } 
  5. }); 

 以同步方法刪除文件

  1. fileio.unlinkSync(path); 

 以異步方式為例,執(zhí)行文件的刪除操作,代碼如下:

  1. fileio.unlink(filePath, function (err) { 
  2.             if (!err) { 
  3.                 prompt.showToast({ 
  4.                     message: "刪除成功" 
  5.                 });  
  6.             } 
  7.         }); 

 通過(guò)對(duì)比查看刪除前后的日志文件可以驗(yàn)證文件刪除成功:

 OpenHarmony 源碼解析之JavaScript(文件管理API)-鴻蒙HarmonyOS技術(shù)社區(qū)

3.7 創(chuàng)建文件夾

以異步方法創(chuàng)建目錄,使用callback形式返回結(jié)果

  1. fileio.mkdir(path, function(err) { 
  2.     if (!err) { 
  3.         // 創(chuàng)建文件夾成功 
  4.     } 
  5. }); 

 以同步方法創(chuàng)建目錄

  1. fileio.mkdirSync(path); 

以同步創(chuàng)建目錄方式,創(chuàng)建dir_test_ 測(cè)試文件夾,代碼如下:

  1. for (let i = 0;i < 4; i++) { 
  2.                    fileio.mkdirSync(data + "/cache_files/dir_test_" + i); 
  3.                } 

 通過(guò)日志我們可以驗(yàn)證文件夾創(chuàng)建成功

 OpenHarmony 源碼解析之JavaScript(文件管理API)-鴻蒙HarmonyOS技術(shù)社區(qū)

3.8 文件的復(fù)制、移動(dòng)操作

以異步方法復(fù)制文件,使用callback形式返回結(jié)果

  1. fileio.copyFile(src, dest, function (err) {  
  2. }); 

以同步方法復(fù)制文件

  1. fileio.copyFileSync(src, dest); 

src:待復(fù)制文件的路徑或待復(fù)制文件的描述符,dest:目標(biāo)文件路徑或目標(biāo)文件描述符,具體代碼如下:

  1. fileio.copyFile(filePath, dest, function (err) { 
  2.              if(!err){ 
  3.                 prompt.showToast({ 
  4.                     message: "復(fù)制成功" 
  5.                 }); 
  6.             } 
  7.         }); 

 通過(guò)查詢目標(biāo)路徑下面文件信息來(lái)驗(yàn)證操作是否成功

 OpenHarmony 源碼解析之JavaScript(文件管理API)-鴻蒙HarmonyOS技術(shù)社區(qū)

文章相關(guān)附件可以點(diǎn)擊下面的原文鏈接前往下載

https://harmonyos.51cto.com/resource/1524

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-09-16 15:08:08

鴻蒙HarmonyOS應(yīng)用

2021-08-30 18:09:57

鴻蒙HarmonyOS應(yīng)用

2023-04-12 15:31:11

系統(tǒng)服務(wù)管理鴻蒙

2022-02-14 14:47:11

SystemUIOpenHarmon鴻蒙

2022-03-29 10:04:44

APIHarmony文件管理

2021-11-18 10:28:03

鴻蒙HarmonyOS應(yīng)用

2021-12-14 14:45:38

鴻蒙HarmonyOS應(yīng)用

2022-05-17 10:42:36

reboot源碼解析

2022-06-13 14:18:39

電源管理子系統(tǒng)耗電量服務(wù)

2022-01-06 16:17:58

鴻蒙HarmonyOS應(yīng)用

2021-09-18 14:40:37

鴻蒙HarmonyOS應(yīng)用

2021-11-08 15:04:47

鴻蒙HarmonyOS應(yīng)用

2022-02-17 20:57:07

OpenHarmon操作系統(tǒng)鴻蒙

2021-12-08 15:07:51

鴻蒙HarmonyOS應(yīng)用

2022-07-05 16:03:29

電源管理子系統(tǒng)鴻蒙

2021-12-17 16:42:09

鴻蒙HarmonyOS應(yīng)用

2022-05-20 10:32:49

事件循環(huán)器事件隊(duì)列鴻蒙

2022-03-10 14:45:23

HarmonyAPI操作系統(tǒng)

2022-01-20 14:33:29

openharmonwayland協(xié)議鴻蒙

2021-12-06 06:19:03

鴻蒙HarmonyOS應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)