forked from harmony_car/subject-two
		
	
		
			
	
	
		
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'
							 | 
						|||
| 
								 | 
							
								import promptAction from '@ohos.promptAction'
							 | 
						|||
| 
								 | 
							
								import fileAccess from '@ohos.file.fileAccess'
							 | 
						|||
| 
								 | 
							
								import common from '@ohos.app.ability.common'
							 | 
						|||
| 
								 | 
							
								import Want from '@ohos.app.ability.Want'
							 | 
						|||
| 
								 | 
							
								import fs from '@ohos.file.fs'
							 | 
						|||
| 
								 | 
							
								import FileUtil from '../../../common/utils/File'
							 | 
						|||
| 
								 | 
							
								import zlib from '@ohos.zlib';
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								const MODELTAG = 'MODELTAG'
							 | 
						|||
| 
								 | 
							
								export default class FileModel{
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  //后续文件路径待替换
							 | 
						|||
| 
								 | 
							
								  private fileUtil: FileUtil
							 | 
						|||
| 
								 | 
							
								  public folderPath: string
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  constructor(context){
							 | 
						|||
| 
								 | 
							
								    (async ()=>{
							 | 
						|||
| 
								 | 
							
								      const fileUtil = new FileUtil(context)
							 | 
						|||
| 
								 | 
							
								      this.fileUtil = fileUtil
							 | 
						|||
| 
								 | 
							
								    })()
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  // 设置文件夹
							 | 
						|||
| 
								 | 
							
								  public initFolder = async () => {
							 | 
						|||
| 
								 | 
							
								    const {fileUtil} = this
							 | 
						|||
| 
								 | 
							
								    await fileUtil.initFolder(`/models/model_enc`);
							 | 
						|||
| 
								 | 
							
								    //TODO 删除待优化
							 | 
						|||
| 
								 | 
							
								    const isDeletedModelEnc= await this.fileUtil.deleteF('models/model_enc',1)
							 | 
						|||
| 
								 | 
							
								    const isDeletedModels = await this.fileUtil.deleteF('models',1)
							 | 
						|||
| 
								 | 
							
								    const folderPath =  await fileUtil.initFolder(`/models`);
							 | 
						|||
| 
								 | 
							
								    this.folderPath = folderPath;
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  // 存储zip文件并解压
							 | 
						|||
| 
								 | 
							
								  public storingFiles = async (str) => {
							 | 
						|||
| 
								 | 
							
								    const {fileUtil,folderPath} = this;
							 | 
						|||
| 
								 | 
							
								    await fileUtil.addFile(`${folderPath}/model.zip`,str)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    let options = {
							 | 
						|||
| 
								 | 
							
								      level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION,
							 | 
						|||
| 
								 | 
							
								      memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT,
							 | 
						|||
| 
								 | 
							
								      strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY
							 | 
						|||
| 
								 | 
							
								    };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    zlib.unzipFile(
							 | 
						|||
| 
								 | 
							
								      `${folderPath}/model.zip`,
							 | 
						|||
| 
								 | 
							
								      `${folderPath}`,
							 | 
						|||
| 
								 | 
							
								      options).then((data) => {
							 | 
						|||
| 
								 | 
							
								      console.log("unzipFile result:" + data);
							 | 
						|||
| 
								 | 
							
								    }).catch((err)=>{
							 | 
						|||
| 
								 | 
							
								      console.log("catch((err)=>" + err);
							 | 
						|||
| 
								 | 
							
								    })
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  //获取文件内容
							 | 
						|||
| 
								 | 
							
								  public getModelContent = (folderPath,fileName) => {
							 | 
						|||
| 
								 | 
							
								    const {fileUtil} = this;
							 | 
						|||
| 
								 | 
							
								    const content = fileUtil.getFileContent(`${folderPath}/${fileName}`)
							 | 
						|||
| 
								 | 
							
								    return content;
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 |