A little update : I finally found an example of a file browser using gtkTreestore that parse the file system recursively : http://www.koders.com/python/fidDB37D29C69F526E5EEA9A7D8B4FC5B87E92A78CC.aspx?s=filter_out_extensions#L113
I still need to check how it works, but I am sure that it will answer my question. Thank you On 29 juin, 13:30, [EMAIL PROTECTED] wrote: > Hello, > > I would like to create a minimalist file browser using pyGTK. > > Having read lot of tutorials, it seems to me that that in my case, the > best solution is > to have a gtk.TreeStore containing all the files and folders so that > it would map the > file system hierarchy. > > I wrote a recursive function that would go through the file system > tree. > > My problem is that a sub-node of a gtk.TreeStore is not a > gtk.TreeStore, but > a gtk.TreeIter. And gtk.treeter has almost no functions I would be > able to use (like "append") > Therefore I can not explore the whole file system. > > Do you have another way so that I would be able to put all the file > system hierarchy > into a gtk.TreeStore? > I was quite happy with my recursive solution ... > > =================================== > code : > #!/usr/bin/env python > import pygtk > pygtk.require('2.0') > import gtk, gobject, os > > prefdir="/tmp/a" > > class InfoModele: > > def matchPathTreetoModelTree(self, path, treeStoreNode): > files = [f for f in os.listdir(path) if f[0] <> '.'] > for i in range(len(files)): > if os.path.isfile(path+'/'+files[i]): > print path+'/'+files[i]+" is a file" > treeStoreNode.append( None, > (path+'/'+files[i], None) ) > if os.path.isdir(path+'/'+files[i]): #is a directory, > go > recursively > print path+'/'+files[i]+" is a directory" > mother = self.tree_store.append( None, > (path+'/'+files[i], None) ) > > self.matchPathTreetoModelTree(path+'/'+files[i], mother) > > def __init__(self): > self.tree_store = gtk.TreeStore( gobject.TYPE_STRING, > gobject.TYPE_STRING) > path=prefdir > self.matchPathTreetoModelTree(prefdir, self.tree_store) > > if __name__ == "__main__": > i=InfoModele() > > ================================= > file system : > a > |-ab/ > |-abc/ > |-abcd > > ================================ > Program output : > /tmp/a/ab is a directory > /tmp/a/ab/abc is a file > Traceback (most recent call last): > File "question.py", line 28, in <module> > i=InfoModele() > File "question.py", line 25, in __init__ > self.matchPathTreetoModelTree(prefdir, self.tree_store) > File "question.py", line 20, in matchPathTreetoModelTree > self.matchPathTreetoModelTree(path+'/'+files[i], mother) > File "question.py", line 16, in matchPathTreetoModelTree > treeStoreNode.append( None, (path+'/'+files[i], None) ) > AttributeError: 'gtk.TreeIter' object has no attribute 'append' -- http://mail.python.org/mailman/listinfo/python-list