feat: usb日志、轨迹拷入
This commit is contained in:
		
							parent
							
								
									2590117346
								
							
						
					
					
						commit
						4c81726cfe
					
				
							
								
								
									
										91
									
								
								entry/src/main/ets/common/utils/UsbUtils.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								entry/src/main/ets/common/utils/UsbUtils.ets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,91 @@ | |||||||
|  | import common from '@ohos.app.ability.common' | ||||||
|  | import fs from '@ohos.file.fs'; | ||||||
|  | import zlib from '@ohos.zlib'; | ||||||
|  | 
 | ||||||
|  | async function compressFileToCache(input: string, output: string, context: common.UIAbilityContext): Promise<string> { | ||||||
|  |   if (!fs.accessSync(input)) { | ||||||
|  |     return Promise.reject("no such file or directory") | ||||||
|  |   } | ||||||
|  |   try { | ||||||
|  |     const tempDir = context.cacheDir + '/' + output | ||||||
|  |     if (fs.statSync(input).isDirectory()) { | ||||||
|  |       if (!fs.accessSync(tempDir)) { | ||||||
|  |         fs.mkdirSync(tempDir) | ||||||
|  |       } | ||||||
|  |       fs.listFileSync(input).forEach(name => { | ||||||
|  |         console.log(name) | ||||||
|  |         fs.copyFileSync(input + '/' + name, tempDir + '/' + name) | ||||||
|  |       }) | ||||||
|  |       await zlib.compressFile(tempDir, tempDir + '.zip', { | ||||||
|  |         level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION, | ||||||
|  |         memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT, | ||||||
|  |         strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY | ||||||
|  |       }) | ||||||
|  |       fs.rmdirSync(context.cacheDir + '/' + output) | ||||||
|  |       return Promise.resolve(tempDir + '.zip') | ||||||
|  |     } else { | ||||||
|  |       const tempDir = context.cacheDir + '/' + output | ||||||
|  |       fs.copyFileSync(input, tempDir) | ||||||
|  |       await zlib.compressFile(tempDir, tempDir + '.zip', { | ||||||
|  |         level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION, | ||||||
|  |         memLevel: zlib.MemLevel.MEM_LEVEL_DEFAULT, | ||||||
|  |         strategy: zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY | ||||||
|  |       }) | ||||||
|  |       fs.unlinkSync(context.cacheDir + '/' + output) | ||||||
|  |       return Promise.resolve(tempDir + '.zip') | ||||||
|  |     } | ||||||
|  |   } catch (e) { | ||||||
|  |     console.log("UsbUtils", JSON.stringify(e)) | ||||||
|  |     return Promise.reject(e) | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export class UsbUtils { | ||||||
|  |   private context: common.UIAbilityContext | ||||||
|  | 
 | ||||||
|  |   constructor(context: common.UIAbilityContext) { | ||||||
|  |     this.context = context | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   getUsbDiskPath(): Promise<string> { | ||||||
|  |     return new Promise((resolve, reject) => { | ||||||
|  |       let path = "" | ||||||
|  |       try { | ||||||
|  |         path = fs.listFileSync("/mnt/data/external")[0] | ||||||
|  |       } catch (error) { | ||||||
|  |         console.log("err", JSON.stringify(error)) | ||||||
|  |         reject(error) | ||||||
|  |         return | ||||||
|  |       } | ||||||
|  |       resolve('/mnt/data/external' + '/' + path) | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   async copyTrackToUsb() { | ||||||
|  |     let output = "" | ||||||
|  |     let temp = "" | ||||||
|  |     return this.getUsbDiskPath().then(path => { | ||||||
|  |       output = path | ||||||
|  |       return compressFileToCache('/data/log/duolun/logs', "track", this.context) | ||||||
|  |     }).then((trackPath) => { | ||||||
|  |       temp = trackPath | ||||||
|  |       return fs.copyFile(trackPath, output + '/' + "track.zip") | ||||||
|  |     }).then(() => { | ||||||
|  |       return fs.unlink(temp) | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   async copyLogToUsb() { | ||||||
|  |     let output = "" | ||||||
|  |     let temp = "" | ||||||
|  |     return this.getUsbDiskPath().then(path => { | ||||||
|  |       output = path | ||||||
|  |       return compressFileToCache('/data/log/hilog', "log", this.context) | ||||||
|  |     }).then((trackPath) => { | ||||||
|  |       temp = trackPath | ||||||
|  |       return fs.copyFile(trackPath, output + '/' + "log.zip") | ||||||
|  |     }).then(() => { | ||||||
|  |       return fs.unlink(temp) | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -88,44 +88,18 @@ | |||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         "name": "ohos.permission.WRITE_IMAGEVIDEO", |         "name": "ohos.permission.WRITE_IMAGEVIDEO", | ||||||
|         "usedScene": { |  | ||||||
|           "abilities": [ |  | ||||||
|             "EntryAbility" |  | ||||||
|           ], |  | ||||||
|           "when": "always" |  | ||||||
|         } |  | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         "name": "ohos.permission.READ_IMAGEVIDEO", |         "name": "ohos.permission.READ_IMAGEVIDEO", | ||||||
|         "usedScene": { |  | ||||||
|           "abilities": [ |  | ||||||
|             "EntryAbility" |  | ||||||
|           ], |  | ||||||
|           "when": "always" |  | ||||||
|         } |  | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         "name": "ohos.permission.FILE_ACCESS_MANAGER", |         "name": "ohos.permission.FILE_ACCESS_MANAGER", | ||||||
|         "reason": "$string:module_desc", |  | ||||||
|         "usedScene": { |  | ||||||
|           "abilities": [ |  | ||||||
|             "MainAbility" |  | ||||||
|           ], |  | ||||||
|           "when": "always" |  | ||||||
|         } |  | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         "name": "ohos.permission.STORAGE_MANAGER" |         "name": "ohos.permission.STORAGE_MANAGER" | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", |         "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", | ||||||
|         "reason": "$string:module_desc", |  | ||||||
|         "usedScene": { |  | ||||||
|           "abilities": [ |  | ||||||
|             "MainAbility" |  | ||||||
|           ], |  | ||||||
|           "when": "always" |  | ||||||
|         } |  | ||||||
|       }, |       }, | ||||||
|     ] |     ] | ||||||
|   } |   } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user