File GTK文件选择器对话框中的HTTP uri

File GTK文件选择器对话框中的HTTP uri,file,dialog,gtk,File,Dialog,Gtk,GTK#可以用作统一的文件/URI对话框吗?我希望它接受http/https/ftp URI,而不“重写”它们(预先设置本地目录) 即使我设置LocalOnly=false并粘贴http://.... 如果将uri放入filechooser内的文本框中,则无法获取原始条目。本地目录总是在文本前加上前缀。我做了一些研究,我认为这是不可能的。至少不能直接使用原生C GTK+API,这是我测试的 在我的测试中,我总是在对话框中输入的http://URI前面加上本地目录的路径,或者返回(null)。我确

GTK#可以用作统一的文件/URI对话框吗?我希望它接受http/https/ftp URI,而不“重写”它们(预先设置本地目录)


即使我设置
LocalOnly=false
并粘贴http://.... 如果将uri放入filechooser内的文本框中,则无法获取原始条目。本地目录总是在文本前加上前缀。

我做了一些研究,我认为这是不可能的。至少不能直接使用原生C GTK+API,这是我测试的

在我的测试中,我总是在对话框中输入的http://URI前面加上本地目录的路径,或者返回(null)。我确实调用了
方法,而不仅仅是
()


作为参考,我还快速查看了应用程序的“文件”菜单。您可能知道,GIMP在GTK+中提供了G,因此它有时可以作为如何使用工具包的参考。GIMP不尝试支持在文件选择器对话框中输入的URI,相反,它有一个专用命令,只需一个GtkEntry即可打开一个简单的对话框。

我做了一些研究,我认为这是不可能的。至少不能直接使用原生C GTK+API,这是我测试的

在我的测试中,我总是在对话框中输入的http://URI前面加上本地目录的路径,或者返回(null)。我确实调用了
方法,而不仅仅是
()


作为参考,我还快速查看了应用程序的“文件”菜单。您可能知道,GIMP在GTK+中提供了G,因此它有时可以作为如何使用工具包的参考。GIMP不尝试支持在文件选择器对话框中输入的URI,而是有一个专用命令,这就打开了一个简单的对话框,只需要一个GtkEntry。

我认为您需要设置为FALSE,然后使用GIO调用,该调用返回一个可通过
GIO
文件API访问的GFile*,因此通过
gvfs

我认为您需要设置为FALSE,然后使用GIO调用,该调用返回可通过
GIO
文件API,因此通过
gvfs
我找到了一个解决方案/破解方法(在C#中):


我不确定这是否总是安全的,但它适用于标准的FileChooserDialog。它将从输入字段返回原始字符串-即使标准Uri/文件结果被破坏。

我找到了一个解决方案/破解方法(在C#中):

我不确定这是否总是安全的,但它适用于标准的FileChooserDialog。它将从输入字段返回原始字符串-即使标准Uri/文件结果被破坏

private string _extractUri(Widget wi) {
    if (wi is Entry)
        return ((wi as Entry).Text);
    else if (wi is Container) {
        foreach (Widget w in (wi as Container).Children) {
            string x = _extractUri(w);
            if (x!=null)
                return x;
        }
    }
    return null;
}