-
- directories = os.listdir(directory)
-
- 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 and not os_path.isdir(directory):
+ directory = None
+ # if we are just entering from the list of mount points:
+ if self.current_directory is None:
+ if directory and self.showMountpoints:
+ self.current_mountpoint = self.getMountpointLink(directory)
+ else:
+ self.current_mountpoint = None
+ self.current_directory = directory
+ directories = []
+ files = []
+
+ if directory is None and self.showMountpoints: # present available mountpoints
+ for p in harddiskmanager.getMountedPartitions():
+ path = os_path.join(p.mountpoint, "")
+ if path not in self.inhibitMounts and not self.inParentDirs(path, self.inhibitDirs):
+ self.list.append(FileEntryComponent(name = p.description, absolute = path, isDir = True))
+ files = [ ]
+ directories = [ ]
+ elif self.useServiceRef:
+ root = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + directory)
+ if self.additional_extensions:
+ root.setName(self.additional_extensions)
+ 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())