- if directory != "/" and self.showDirectories:
- self.list.append(FileEntryComponent(name = "..", absolute = '/'.join(directory.split('/')[:-2]) + '/', isDir = True))
- for x in directories:
- if os.path.isdir(directory + x):
- if self.showDirectories:
- self.list.append(FileEntryComponent(name = x, absolute = directory + x + "/" , isDir = True))
- elif self.showFiles:
- if self.matchingPattern is not None:
- if re.compile(self.matchingPattern).search(x):
- self.list.append(FileEntryComponent(name = x, absolute = directory + x , isDir = False))
+ 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)
+
+ if directory is not None and self.showDirectories and not self.isTop:
+ if directory == self.mount_point:
+ self.list.append(FileEntryComponent(name = ".. (" +_("List of Storage Devices") + ")", absolute = None, isDir = True))
+ else:
+ self.list.append(FileEntryComponent(name = "..", absolute = '/'.join(directory.split('/')[:-2]) + '/', isDir = True))
+
+ if self.showDirectories:
+ for x in directories:
+ name = x.split('/')[-2]
+ self.list.append(FileEntryComponent(name = name, absolute = x, isDir = True))
+
+ if self.showFiles:
+ for x in files:
+ if self.useServiceRef:
+ path = x.getPath()
+ name = path.split('/')[-1]