如何使用 GLib 使平台无关的文件路径斜杠“/”? (GJS)
How to make the platform independent filepath slash "/" with GLib? (GJS)
我有一个 folderPath
,它有一个目录字符串:
/home/bastian/Pictures
我有一个包含名称的变量 fileName
。
我可以像这样将两个字符串连接在一起,但它只适用于 UNIX 系统:
let filePath = folderPath + '/' + fileName;
有没有一种方法可以使用 GLib 将两者连接起来而不用假设斜杠或反斜杠(以保持 fx Windows 兼容)?
在 guadec 的帮助下,我发现我可以使用 GLib 的 g_build_filenamev () 函数。
let filePath = GLib.build_filenamev([folderPath, fileName]);
这会构建一个文件路径,同时尊重平台。
注意:它要求您首先在 GJS 文件的顶部导入 GLib,如下所示:
const { GLib } = imports.gi;
如果你恰好在使用Gio.File
对象来操作路径,你也可以这样做:
const folder = Gio.File.new_for_path(folderPath);
const file = folder.get_child(fileName);
我有一个 folderPath
,它有一个目录字符串:
/home/bastian/Pictures
我有一个包含名称的变量 fileName
。
我可以像这样将两个字符串连接在一起,但它只适用于 UNIX 系统:
let filePath = folderPath + '/' + fileName;
有没有一种方法可以使用 GLib 将两者连接起来而不用假设斜杠或反斜杠(以保持 fx Windows 兼容)?
在 guadec 的帮助下,我发现我可以使用 GLib 的 g_build_filenamev () 函数。
let filePath = GLib.build_filenamev([folderPath, fileName]);
这会构建一个文件路径,同时尊重平台。
注意:它要求您首先在 GJS 文件的顶部导入 GLib,如下所示:
const { GLib } = imports.gi;
如果你恰好在使用Gio.File
对象来操作路径,你也可以这样做:
const folder = Gio.File.new_for_path(folderPath);
const file = folder.get_child(fileName);