HarmonyOS 鸿蒙Next 修改ini后缀文件中的指定内容

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 修改ini后缀文件中的指定内容

修改广告配置文件,

  1. 获取文件地址是 data/storage/el2/base/haps/entry/files/user/syscfg/qscfg.ini

  2. 通过 ide 查看实际地址是 /data/app/el2/100/base/com.xcsc.hmapp/haps/entry/files/user/syscfg.json

这个两个地址是同一个地址

  1. 如何修改文件里面 INITVIEWAD=0 值到 INITVIEWAD=1
2 回复

参考demo:

import fs, { ReadOptions, WriteOptions } from '@ohos.file.fs';
import { common } from '@kit.AbilityKit';
import { buffer } from '@kit.ArkTS';

@Entry
@Component
struct EditFileContentPage {
  @State message: string = 'Hello World';
  private context = this as common.UIAbilityContext
  private filePath = this.context.cacheDir + '/test.ini'
  build() {
    Column() {
      Button('保存到沙箱').onClick(() => {
        this.context.resourceManager.getRawFile("test.ini",(err,value) => {
          let file = fs.openSync(this.filePath,fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
          console.log(`${value.buffer.byteLength}`)
          fs.writeSync(file.fd,value.buffer)
          fs.closeSync(file.fd)
        })
      })

      Button('修改文件').onClick(() => {
        let file = fs.openSync(this.filePath,fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
        let buf = new ArrayBuffer(fs.statSync(file.fd).size)
        //转arraybuffer
        fs.readSync(file.fd,buf)
        let buff =  buffer.from(buf)
        if (buff.includes('name')) {
          let index =  buff.indexOf('name')
          buff.write('100',index+5,3)
        }

        let writeOptions: WriteOptions = {
          length: buff.length,
          offset:0
        };
        fs.writeSync(file.fd,buff.toString(),writeOptions)
        fs.closeSync(file);
      })
    }
    .height('100%')
    .width('100%')
  }
}

修改前内容: key=1 name=50 values=100

修改后: key=1 name=100 values=100

参考连接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-buffer-V5#%E5%AF%BC%E5%85%A5%E6%A8%A1%E5%9D%97

更多关于HarmonyOS 鸿蒙Next 修改ini后缀文件中的指定内容的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,修改.ini后缀文件中的指定内容通常涉及到文件读取、内容解析、修改以及写回文件的过程。由于鸿蒙系统支持多种编程语言进行应用开发,这里提供一个基于Python的解决方案,因为Python在处理文本文件时非常直观且高效。

你可以使用Python的内置函数和库来完成这个任务。例如,使用open()函数读取文件内容,使用字符串操作或正则表达式来定位并修改指定的内容,最后再将修改后的内容写回文件。

以下是一个简单的示例代码:

def modify_ini_file(file_path, section, key, new_value):
    with open(file_path, 'r') as file:
        lines = file.readlines()

    in_section = False
    modified_lines = []

    for line in lines:
        stripped_line = line.strip()
        if stripped_line == f'[{section}]':
            in_section = True
        elif in_section and stripped_line.startswith(key + '='):
            modified_lines.append(f"{key}={new_value}\n")
        else:
            modified_lines.append(line)
        if in_section and not stripped_line:  # End of section
            in_section = False

    with open(file_path, 'w') as file:
        file.writelines(modified_lines)

# 调用函数,修改指定文件、节、键和值
modify_ini_file('path/to/your/file.ini', 'SectionName', 'KeyName', 'NewValue')

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部