diff --git a/gio/gio.go b/gio/gio.go
index <HASH>..<HASH> 100644
--- a/gio/gio.go
+++ b/gio/gio.go
@@ -28,6 +28,14 @@ func NewGFileForPath(filename string) *GFile {
 	return &GFile{C.g_file_new_for_path(ptrFilename)}
 }
 
+// NewGFileForURI is g_file_new_for_uri
+func NewGFileForURI(uriFilename string) *GFile {
+	ptrFilename := C.CString(uriFilename)
+	defer cfree(ptrFilename)
+
+	return &GFile{C.g_file_new_for_uri(ptrFilename)}
+}
+
 type GFileQueryInfoFlags C.GFileQueryInfoFlags
 
 var (
@@ -56,6 +64,11 @@ func (f *GFile) QueryInfo(attributes string, flags GFileQueryInfoFlags) (*GFileI
 	return &GFileInfo{gfileinfo}, nil
 }
 
+//GetPath is `g_file_get_path`, return real, absolute, canonical path. It might contain symlinks.
+func (f *GFile) GetPath() string {
+	return gostring(C.g_file_get_path(f.GFile))
+}
+
 //-----------------------------------------------------------------------
 // GFileInfo
 //-----------------------------------------------------------------------
added to gio methods NewGFileForURI and GFile.GetPath