GTK#的FileChooserDialog可以用作统一文件/ URI对话框吗?我希望它接受http / https / ftp URI而不“重写”它们(在添加本地目录之前)。
即使我设置LocalOnly=false
并将http:// .... uri粘贴到filechooser内的文本框中,我也无法获得原始条目。本地目录始终附加在文本中。
答案 0 :(得分:0)
我做了一些研究,我认为这不可行。至少没有使用直接原生C GTK + API,这是我测试过的。
在我的测试中,我总是将本地目录的路径添加到我在对话框中输入的http:// URI之前,或者我回来了(null)。我确实调用了get_uri()
方法,而不仅仅是get_filename()
。
我还在GIMP应用程序的“文件”菜单中快速查看了一下作为参考。您可能知道,GIMP在GTK +中提供G,因此它有时可以作为有关如何使用该工具包的想法的参考。 GIMP不会尝试支持在文件选择器对话框中输入的URI,而是使用专用的Open Location命令,只需一个GtkEntry即可打开一个简单的对话框。
答案 1 :(得分:0)
我认为您需要将local-only设置为FALSE,然后使用GIO get_file ()/get_files ()调用返回通过GIO
文件API访问的GFile *,从而通过gvfs
答案 2 :(得分:0)
毕竟我找到了一个解决方案/ hack(在C#中):
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;
}
我不确定这是否总是安全的,但它适用于标准的FileChooserDialog。它将从输入字段返回原始字符串 - 即使标准的Uri / File结果被破坏。