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