我有一个电子应用程序,将使用一个节点脚本,将运行一个cron每周一次执行.我需要执行一个python文件,是在一个名为dependencies的文件夹中,它的创建时,我做的构建使用npm run electron:build
.我不使用该应用程序的安装程序,但我运行的exe文件是在win-unpacked
文件夹中,将包含应用程序.如果我运行开发模式所有的工作很好,python脚本文件的执行没有问题,但在生产应用程序中,应用程序将无法识别依赖文件夹,如果它存在的话。我如何才能正确指向从构建过程创建的asar之外的文件夹?
ipcMain.on('saveExtractionData', (event, ...args) => {
//Other code stuff ...
if( !fs.existsSync( outputDir ) ){
console.log(`Output folder not exist. Creating folder at: ${outputDir}`);
fs.mkdir( outputDir, (err) => {
if( err ){
throw err
}
// The file and the folder exists but electron seems not recognize it with this path
fs.readFile('dependencies/cleaner.py', (error, buffer) => {
if(error){
throw error
}
fs.writeFileSync( path.join(outputDir, 'cleaner.py'), buffer)
})
fs.writeFile( path.join(outputDir, `${filename}.xlsx`), fileBuffer, (error) => {
if( error ){
throw error
}
console.log(`Writing file ${filename}.xlsx into ${outputDir} folder...`);
event.sender.send('resetExtractionData')
})
})
} else {
fs.writeFile( path.join(outputDir, `${filename}.xlsx`), fileBuffer, (error) => {
if( error ){
console.log(error)
throw error
}
console.log(`Writing file ${filename}.xslx into ${outputDir} folder...`)
event.sender.send('resetExtractionData')
})
}
})
字符串
1条答案
按热度按时间acruukt91#
Electron的app(https://www.electronjs.org/docs/latest/api/app)模块可以成为你的朋友。它包含一个名为
getPath()
的帮助函数,可以返回各种路径。在您的情况下,
app.getPath('exe')
将是最合适的,因为它返回应用程序可执行文件的名称和路径。如果您将其与path.parse().dir
合并结合使用,则可以检索实际路径。举例来说:
字符串