Javascript 如何更改electron中的路径,以便将文件保存到未打包在app.asar文件中的不同目录?

Javascript 如何更改electron中的路径,以便将文件保存到未打包在app.asar文件中的不同目录?,javascript,node.js,electron,Javascript,Node.js,Electron,我正在构建一个电子应用程序,它将在构建应用程序后保存文件,当我让package.json文件中的asar=true时,它不会给我任何错误,并且不会保存任何内容,但当我使其asar=false工作并保存文件时。我想让它asar=true并更改文件应该保存到的目录。。 这是我的index.js文件 const fs = require('fs') const path = require('path') btnCreate = document.getElementById('btnCreate

我正在构建一个电子应用程序,它将在构建应用程序后保存文件,当我让package.json文件中的asar=true时,它不会给我任何错误,并且不会保存任何内容,但当我使其asar=false工作并保存文件时。我想让它asar=true并更改文件应该保存到的目录。。 这是我的index.js文件


const fs = require('fs')
const path = require('path')

btnCreate = document.getElementById('btnCreate')
btnRead = document.getElementById('btnRead')
btnDelete = document.getElementById('btnDelete')
fileName = document.getElementById('fileName')
fileContents = document.getElementById('fileContents')

let pathName = path.join(__dirname, 'Files')


btnCreate.addEventListener('click', function(){

    let file     = path.join(pathName, fileName.value)
    let contents = fileContents.value
    fs.writeFile(file, contents, function(err){
        if(err){
            return console.log(err)
        }
        console.log("The File Was Created")

    })

})

我找到了这个答案:


但是我对Electron非常陌生,我不知道如何制作它?

要获得安装路径,您可以在main.js中使用
app.getAppPath()
。但在生产中,这将返回您的
asar
路径

app.getAppPath()
返回字符串-当前应用程序目录

main.js
中,您可以使用以下代码写入安装文件夹

const myInstalledDir = path.join(app.getAppPath(),"..",".."); // root installation path
const fs = require("fs")
const path = require("path")
//write something to root installation folder
fs.writeFileSync(path.join(myInstalledDir,"myfile.txt"),"sdfsdf")
//reading
console.log(fs.readFileSync(path.join(myInstalledDir,"myfile.txt")))

您是在渲染进程还是主进程中运行上述代码?我是在主进程中运行此代码。请尝试此
让homePath=app.getPath(“home”)
,顺便说一句,index.js是在index.html中导入的文件。这是在渲染器中运行的。main.js是主进程。导入应用程序
const-app=require('electron').remote.app
到RenderThank@namila007。。它现在起作用了。。但是我想把它保存到项目的主文件夹,我如何写路径使它保存到主文件夹?有更新@sami吗?