如何使用PyGTK将列表写为文件属性

时间:2015-07-09 20:42:17

标签: python gtk

enter image description here

Linux Mint创始人的comment声明可以以编程方式访问较新版Nemo中的文件标志,如下例中使用Python和PyGTK所示:

import gio
file = gio.File("/home/guest/Documents/Todo")
emblems = file.query_info("metadata::emblems")
print emblems.get_attribute_as_string("metadata::emblems")

以“

”格式输出内容
[emblem-important, emblem-urgent]

如您所见,存储为metadata::emblems的对象是一个列表(我猜是字符串)。但是,在Gio.FileInfo public class SOActivity extends Activity { private String var1; private ArrayList<String> var2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); OuterClass outerClass = new OuterClass(); outerClass.someMethod(this); android.util.Log.d("SOActivity", "var1=" + var1); android.util.Log.d("SOActivity", "var2=" + var2.get(0) + var2.get(1)); } public void setVar1(String var1) { this.var1 = var1; } public void setVar2(ArrayList<String> var2) { this.var2 = var2; } } public class OuterClass { public void someMethod(SOActivity soActivity) { // Some big init for var1 and var2 soActivity.setVar1("somevalue1"); ArrayList<String> al = new ArrayList<String>(); al.add("My"); al.add("solution"); soActivity.setVar2(al); } } 上,我无法找到访问(读取或写入)数组类型属性的方法。

有没有任何方法可以做到这一点(即以编程方式阅读单个徽章或设置新徽章)?如果是,我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

奇怪的是,没有方便的方法可以做到这一点,但您可以直接拨打File.set_attribute,使用STRINGV作为类型。

f.set_attribute('metadata::emblems', gio.FILE_ATTRIBUTE_TYPE_STRINGV, ['emblem-important', 'emblem-urgent'])