Gtk 如何使平台独立于文件路径斜杠“/&引用;油嘴滑舌?(GJS)

Gtk 如何使平台独立于文件路径斜杠“/&引用;油嘴滑舌?(GJS),gtk,gtk3,glib,gjs,Gtk,Gtk3,Glib,Gjs,我有一个folderPath,它有一个目录字符串: /home/bastian/Pictures 我有一个变量fileName,其中包含名称。 我可以像这样将两个字符串连接在一起,但它仅适用于UNIX系统: let filePath = folderPath + '/' + fileName; 有没有一种方法可以让GLib在不假设斜杠或反斜杠的情况下将两者连接起来(以保持fx窗口的兼容性) 在guadec的帮助下,我发现我可以使用GLib的功能 let filePath = GLib.bui

我有一个
folderPath
,它有一个目录字符串:

/home/bastian/Pictures
我有一个变量
fileName
,其中包含名称。 我可以像这样将两个字符串连接在一起,但它仅适用于UNIX系统:

let filePath = folderPath + '/' + fileName;

有没有一种方法可以让GLib在不假设斜杠或反斜杠的情况下将两者连接起来(以保持fx窗口的兼容性)

在guadec的帮助下,我发现我可以使用GLib的功能

let filePath = GLib.build_filenamev([folderPath, fileName]);
这将构建文件的路径,同时尊重平台

注意:它要求您首先在GJS文件的顶部导入GLib,如下所示:

const { GLib } = imports.gi;
const folder = Gio.File.new_for_path(folderPath);
const file = folder.get_child(fileName);

在guadec的帮助下,我发现我可以使用GLib的功能

let filePath = GLib.build_filenamev([folderPath, fileName]);
这将构建文件的路径,同时尊重平台

注意:它要求您首先在GJS文件的顶部导入GLib,如下所示:

const { GLib } = imports.gi;
const folder = Gio.File.new_for_path(folderPath);
const file = folder.get_child(fileName);

如果您碰巧使用了
Gio.File
对象来操纵路径,您还可以执行以下操作:

const { GLib } = imports.gi;
const folder = Gio.File.new_for_path(folderPath);
const file = folder.get_child(fileName);

如果您碰巧使用了
Gio.File
对象来操纵路径,您还可以执行以下操作:

const { GLib } = imports.gi;
const folder = Gio.File.new_for_path(folderPath);
const file = folder.get_child(fileName);

你可以接受你自己的答案,这是允许的,以v结尾的函数可以操纵向量。如果希望在数组中不提供定义的路径(这是您的示例),则更自然。如果您想对分离器进行一些控制,可以与
G\u DIR\u separator\u S
一起使用,它适合于平台。例如,如果您想在Windows上强制向前斜杠分隔路径(这应该也可以),您可以接受自己的答案,这是允许的,并且以v结尾的函数可以操纵向量。如果希望在数组中不提供定义的路径(这是您的示例),则更自然。如果您想对分离器进行一些控制,可以与
G\u DIR\u separator\u S
一起使用,它适合于平台。例如,如果要在Windows上强制向前斜杠分隔路径(这也应该有效)。