常用路径
程序安装文件夹路径
1 | const {app} = window.require("electron").remote; |
其中homeDir的路径为:
- 开发环境 D:\Project\Electron\school_live_client\node_modules\electron\dist\
- 打包环境 安装目录中exe的同级目录
EXE路径
可执行文件路径
1 | app.getPath("exe") |
结果
app.getPath(“exe”): D:\Project\Electron\school_live_client\node_modules\electron\dist\electron.exe
注意:
这里是开发时打印的路径,发布后是不一样的,是
安装后的文件夹路径+exe文件名称
用户相关文件夹路径
home
用户的 home 文件夹(主目录)documents
用户文档目录的路径downloads
用户下载目录的路径music
用户音乐目录的路径pictures
用户图片目录的路径videos
用户视频目录的路径
1 | app.getPath("home"); |
结果
app.getPath(“home”): C:\Users\18351
app.getPath(“documents”): C:\Users\18351\Documents
app.getPath(“downloads”): C:\Users\18351\Downloads
app.getPath(“music”): C:\Users\18351\Music
app.getPath(“pictures”): C:\Users\18351\Pictures
app.getPath(“videos”): C:\Users\18351\Videos
注意:
这些路径中包含用户名,如果计算机的用户名是中文的话,路径中就会包含中文,有些第三方的库使用的路径可能不支持中文,一定要注意!!!
桌面文件夹路径
1 | app.getPath("desktop") |
结果
app.getPath(“desktop”): C:\Users\18351\Desktop
注意:
桌面路径中包含用户名,如果计算机的用户名是中文的话,路径中就会包含中文,有些第三方的库使用的路径可能不支持中文,一定要注意!!!
AppData下文件夹路径
appData
每个用户的应用程序数据目录,默认情况下指向%APPDATA%
Windows 中$XDG_CONFIG_HOME
or~/.config
Linux 中~/Library/Application Support
macOS 中
userData
储存你应用程序设置文件的文件夹,默认是appData
文件夹附加应用的名称logs
应用程序的日志文件夹cache
缓存路径temp
临时文件夹
代码1
2
3
4
5app.getPath("appData");
app.getPath("userData");
app.getPath("logs");
app.getPath("cache");
app.getPath("temp");
结果
app.getPath(“appData”): C:\Users\18351\AppData\Roaming
app.getPath(“userData”): C:\Users\18351\AppData\Roaming\应用名称
app.getPath(“logs”): C:\Users\18351\AppData\Roaming\应用名称\Electron\logs
app.getPath(“cache”): C:\Users\18351\AppData\Roaming
app.getPath(“temp”): C:\Users\18351\AppData\Local\Temp
注意:
注意
用户名
或应用名
为中文的时候,logs
和userData
中会包含中文,有些第三方的库使用的路径可能不支持中文,一定要注意!!!
程序根目录(不建议)
不建议使用
1 | const {app} = window.require("electron").remote; |
结果
app.getAppPath(): D:\Project\Electron\school_live_client
注意:
这个在开发时时源代码所在路径。
这是应用的安装路径和应用名称没有必然关系,一定要注意。
打包后的路径为
假如程序的安装路径为D:\MyApp
D:\MyApp\resources\app.asar
这个路径是在压缩文件内不建议使用。
不建议使用的路径
这两个路径会报错
recent
用户最近文件的目录 (仅限 Windows)。crashDumps
崩溃转储文件存储的目录。
返回 String
- 一个与 name
相关的特殊目录或文件的路径。 失败会抛出一个Error
。
路径获取方法推荐
很多应用的应用存储位置在AppData
下,但是有的程序不支持中文路径,而AppData
可能包含中文。
1 | const path = require("path"); |
渲染进程获取参数参见
https://www.psvmc.cn/article/2023-09-13-electron-remote.html
获取文件夹下文件
获取文件夹及子文件夹下的文件,返回一层的文件路径的数组。
zfile_util.js
1 | const path = require("path"); |
调用
1 | const { mapDirAll } = require("./nodejs_utils/zfile_util"); |
获取文件夹及子文件夹和文件
获取文件夹及子文件夹以及文件,返回树状结构。
zfile_util.js
1 | const path = require("path"); |
使用
1 | const { mapDirAll } = require("./nodejs_utils/zfile_util"); |
文件弹窗保存
主进程
1 | const { ipcMain } = require("electron"); |
渲染进程
1 | const { ipcRenderer } = window.require("electron"); |
文件读写
读
1 | let fs = window.require("fs"); |
写
示例
1 | function writeToFile(filePath, content) { |
默认情况下,此API将替换文件的内容
(如果已经存在)。
您可以通过指定标志来修改默认值:
1 | fs.writeFile('/Users/me/test.txt', content, { flag: 'a+' }, (err) => {}) |
您可能会使用的标志是
r+
打开文件进行读写w+
打开文件进行读写,将流放在文件的开头。 如果不存在则创建文件
打开一个文件进行写入,将流放在文件末尾。 如果不存在则创建文件a+
打开文件进行读写,将流放在文件末尾。 如果不存在则创建文件