Electron Dialog的使用以及打開目錄两蟀、文件以及讀寫配置文件

首先你先完成了初識,以及引入VUE履澳、修改了main.js的一些參數(shù)。
Electron初識以及使用VUE調接口+時時刷新

需求:我期望打開某個目錄怀跛,修改其目錄下的某個配置文件

要打開目錄距贷、或者文件,就需要用到Electron的dialog吻谋。該Api只支持再主程序使用忠蝗,其他程序要使用就需要跟著我的步揍走。

第一步漓拾,引入:@electron/remote 新版取消了remote

npm install --save @electron/remote

第二步阁最,再主程序中使用它戒祠。

const { app, BrowserWindow, Menu } = require('electron');
const path = require('path')
// 1.引入remote模塊
const remote = require("@electron/remote/main");
remote.initialize()
const createWindow = () => {
    // Create the browser window.
    const win = new BrowserWindow({
        width: 800,
        height: 600,
        // 禁止用戶拖拽改變大小
        resizable: false,
        icon: "./favicon.ico",
        webPreferences: {
            nodeIntegration:true,
            contextIsolation: false,
            enableRemoteModule: true,
            preload: path.join(__dirname, 'preload.js'),
        },
        autoHideMenuBar: true
    })

    win.loadFile('./src/view/index.html');
    // 2.啟用remote模塊,渲染進程就可以使用主程序模塊
    remote.enable(win.webContents);
}

app.whenReady().then(() => {
    createWindow()
    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) createWindow()
    })
})

app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') app.quit()
})

完成以上兩個步揍后速种,我就可以在其他窗口使用dialog了姜盈。
話不多說,直接先上HTML代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width,initial-scale=1.0" />
        <script src="https://unpkg.com/vue@next"></script>
        <!-- import CSS -->
        <link rel="stylesheet" />
        <!-- import JavaScript -->
        <script src="https://unpkg.com/element-plus"></script>
        <title>測試一下</title>
    </head>
    <body>
        <div id="app">
            <el-form :model="form" label-width="120px">
                <el-form-item label="請選擇你的文件:">
                    <el-input v-model="filePath" placeholder="請選擇你的文件" readonly @click="selectDirectory"/>
                </el-form-item>
            </el-form>
            <el-row>
                <el-button @click="readFile">讀取配置文件</el-button>
                <el-button @click="writeFile">寫入配置文件</el-button>
            </el-row>
        </div>
        <script src="../../preload.js"></script>
        <script src="./index.js"></script>
    </body>
</html>

index.js


const { dialog } = require('@electron/remote')
console.log(dialog, 'dialog')
//引入node原生fs模塊
const fs = require("fs")
//引入node原生讀寫配置
const ini = require('ini');
const AppVue = {
    data() {
        return {
            filePath: "",
            config:null,
        }
    },
    methods: {
        selectDirectory() {
            dialog.showOpenDialog({
                properties: ["openFile"] // 選擇文件
                // properties: ["openDirectory"] // 選擇目錄
            }).then((results) => {
                // console.log(results.filePaths);
                // console.log(results.canceled);
                this.filePath = results.filePaths[0];
            })
        },
        // 讀取配置文件
        readFile(){
            
            if(!this.filePath){
                this.errMsg("請先選擇文件")
                return
            }
            this.config = ini.parse(fs.readFileSync(this.filePath).toString());
            console.log(this.config,'config')
        },
        // 寫配置文件
        writeFile(){
            if(!this.config){
                this.errMsg("請先讀取文件")
                return
            }
            this.config.邪七.簡書測試 = "簡書測試2022年7月22日12:21:36"
            fs.writeFileSync(this.filePath, ini.stringify(this.config))
        },
        errMsg(msg){
            dialog.showErrorBox("錯誤信息",msg);
        },
    },
}
const app = Vue.createApp(AppVue);
app.use(ElementPlus);
app.mount('#app')

最終效果:


image.png
image.png

其中輸出的值配阵,就自己調試文件看了馏颂。
至此,三個知識點結束棋傍。

  1. 學習Dialog的使用救拉。更多參數(shù):官網(wǎng)Dialog文檔
  2. 使用Fs讀寫文件
  3. 使用ini讀寫配置
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瘫拣,隨后出現(xiàn)的幾起案子亿絮,更是在濱河造成了極大的恐慌,老刑警劉巖拂铡,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壹无,死亡現(xiàn)場離奇詭異,居然都是意外死亡感帅,警方通過查閱死者的電腦和手機斗锭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來失球,“玉大人岖是,你說我怎么就攤上這事∈蛋” “怎么了豺撑?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長黔牵。 經(jīng)常有香客問我聪轿,道長,這世上最難降的妖魔是什么猾浦? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任陆错,我火速辦了婚禮,結果婚禮上金赦,老公的妹妹穿的比我還像新娘音瓷。我一直安慰自己,他們只是感情好夹抗,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布绳慎。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杏愤。 梳的紋絲不亂的頭發(fā)上靡砌,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音声邦,去河邊找鬼乏奥。 笑死,一個胖子當著我的面吹牛亥曹,可吹牛的內容都是我干的。 我是一名探鬼主播恨诱,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼媳瞪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了照宝?” 一聲冷哼從身側響起蛇受,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厕鹃,沒想到半個月后兢仰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡剂碴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年把将,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忆矛。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡察蹲,死狀恐怖,靈堂內的尸體忽然破棺而出催训,到底是詐尸還是另有隱情洽议,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布漫拭,位于F島的核電站亚兄,受9級特大地震影響,放射性物質發(fā)生泄漏采驻。R本人自食惡果不足惜审胚,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挑宠。 院中可真熱鬧菲盾,春花似錦、人聲如沸各淀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至临谱,卻和暖如春璃俗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悉默。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工城豁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抄课。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓唱星,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跟磨。 傳聞我的和親對象是個殘疾皇子间聊,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容