如何使用 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);