2011-12-20 18 views
1

我可以想到兩種方法:首先,我可以操縱字符串本身;去除最後一個「/」之前的所有內容。或者,我可以使用URI來獲取File對象,然後調用query_info()。get_display_name()。在Vala中從URI獲取文件基本名稱的最佳方式是什麼?

第一個感覺不正確,第二個結果創建兩個對象。這裏遵循的最佳做法是什麼?

回答

4

(使用GLib.File)第二種方法可能是最強大的,但是......

如果你有什麼是真正的路徑,而不是一個URI(例如,/家庭/富/酒吧不文件:///家/富/條),你可以只使用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")); 
+0

+1 fo r指出你應該使用哪種方式取決於你需要多少健壯性,即多少你可以相信你的輸入。讓我在這個評論中再次強調這一點,只是不那麼微妙;-) – ptomato 2011-12-20 21:46:00

相關問題