fs.writeFile 创建只读文件
fs.writeFile creates read only file
我正在编写电子应用程序,有时我需要将一些文本保存到文件中。
我正在使用对话框模块让用户选择保存文件的位置并快速命名文件。
这是处理文件创建的代码部分:
var exportSettings = (event, settings) => {
//settings is a css string
console.log(settings)
dialog.showSaveDialog({
title: 'Export settings as theme',
filters: [{
name: 'UGSM theme(CSS)',
extensions: ['css']
}]
},(fileName) => {
console.log('callback scope');
console.log(fileName);
if (fileName) {
fs.writeFile(fileName, settings, (error) => {
console.log(error);
});
}
});
}
在用户选择一个目录和一个文件后创建该文件 name.However 它被创建为只读的,我希望它被创建为可编辑的 everyone.Any 为什么会这样发生了什么?
哎呀终于找到问题的根源了
问题在于我如何启动我的电子应用程序。 `
我使用 sudo electron .
启动我的应用程序,因为它需要 root 访问权限才能执行某些系统 tasks.Hence 由 sudo
或 root
创建的文件只对其他 users.To 修复了我使用 chmod()
在文件创建后更改权限的问题。
这是我的解决方案:
var exportSettings = (event, settings) => {
dialog.showSaveDialog({
title: 'Export settings as theme',
filters: [{
name: 'UGSM theme(CSS)',
extensions: ['css']
}]
}, (fileName) => {
if (fileName) {
fs.writeFile(fileName, settings, (error) => {
//Since this code executes as root the file being created is read only.
//chmod() it
fs.chmod(fileName, 0666, (error) => {
console.log('Changed file permissions');
});
});
}
});
};
我正在编写电子应用程序,有时我需要将一些文本保存到文件中。
我正在使用对话框模块让用户选择保存文件的位置并快速命名文件。 这是处理文件创建的代码部分:
var exportSettings = (event, settings) => {
//settings is a css string
console.log(settings)
dialog.showSaveDialog({
title: 'Export settings as theme',
filters: [{
name: 'UGSM theme(CSS)',
extensions: ['css']
}]
},(fileName) => {
console.log('callback scope');
console.log(fileName);
if (fileName) {
fs.writeFile(fileName, settings, (error) => {
console.log(error);
});
}
});
}
在用户选择一个目录和一个文件后创建该文件 name.However 它被创建为只读的,我希望它被创建为可编辑的 everyone.Any 为什么会这样发生了什么?
哎呀终于找到问题的根源了
问题在于我如何启动我的电子应用程序。 `
我使用 sudo electron .
启动我的应用程序,因为它需要 root 访问权限才能执行某些系统 tasks.Hence 由 sudo
或 root
创建的文件只对其他 users.To 修复了我使用 chmod()
在文件创建后更改权限的问题。
这是我的解决方案:
var exportSettings = (event, settings) => {
dialog.showSaveDialog({
title: 'Export settings as theme',
filters: [{
name: 'UGSM theme(CSS)',
extensions: ['css']
}]
}, (fileName) => {
if (fileName) {
fs.writeFile(fileName, settings, (error) => {
//Since this code executes as root the file being created is read only.
//chmod() it
fs.chmod(fileName, 0666, (error) => {
console.log('Changed file permissions');
});
});
}
});
};