+ # if we are just entering from the list of mount points:
+ if self.current_directory is None:
+ self.mount_point = directory
+ self.current_directory = directory
+ directories = []
+ files = []
+
+ if directory is None: # present available mountpoints
+ print "listing partitions:"
+ for p in harddiskmanager.getMountedPartitions():
+ if p.mountpoint == "/":
+ self.list.append(FileEntryComponent(name = p.description, absolute = p.mountpoint, isDir = True))
+ else:
+ self.list.append(FileEntryComponent(name = p.description, absolute = p.mountpoint + "/", isDir = True))
+ files = [ ]
+ directories = [ ]
+ elif self.useServiceRef:
+ root = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + directory)
+ serviceHandler = eServiceCenter.getInstance()
+ list = serviceHandler.list(root)
+
+ while 1:
+ s = list.getNext()
+ if not s.valid():
+ del list
+ break
+ if s.flags & s.mustDescent:
+ directories.append(s.getPath())
+ else:
+ files.append(s)
+ print s.getName(), s.flags
+ directories.sort()
+ files.sort()
+ else:
+ files = listdir(directory)
+ files.sort()
+ tmpfiles = files[:]
+ for x in tmpfiles:
+ if os_path.isdir(directory + x):
+ directories.append(directory + x + "/")
+ files.remove(x)