在Vala中从URI获取文件的基本名称的最佳方法是什么?

时间:2011-12-20 16:21:54

标签: uri vala

我可以想到两种方式:首先,我可以操纵字符串本身;剥去最后一个“/”之前的所有内容。或者,我可以使用URI来获取File对象,然后调用query_info()。get_display_name()。

第一个感觉不正确,而第二个导致创建两个对象。这里遵循的最佳做法是什么?

1 个答案:

答案 0 :(得分:4)

第二种方式(使用GLib.File)可能是最强大的,但是......

如果你拥有的只是一个路径,而不是一个URI(例如,/ home / foo / bar而不是file:/// home / foo / bar)你可以使用GLib.Path.get_basename:

GLib.Path.get_basename ("/home/foo/bar");

因为URI中的字符可以被编码(例如,%20而不是空格),如果你真的有一个URI,你可能需要先取消字符串:

GLib.Path.get_basename (GLib.Uri.unescape_string ("file:///home/foo/bar%20baz"));
相关问题