aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/fs/fs.h3
-rw-r--r--backends/fs/symbian/symbian-fs.cpp2
-rw-r--r--backends/fs/windows/windows-fs.cpp2
-rw-r--r--common/file.cpp2
4 files changed, 5 insertions, 4 deletions
diff --git a/backends/fs/fs.h b/backends/fs/fs.h
index 1181e69723..6ad51762ca 100644
--- a/backends/fs/fs.h
+++ b/backends/fs/fs.h
@@ -99,7 +99,8 @@ public:
typedef enum {
kListFilesOnly = 1,
kListDirectoriesOnly = 2,
- kListAll = 3
+ kListAllNoRoot = 3,
+ kListAll = 4
} ListMode;
virtual ~AbstractFilesystemNode() {}
diff --git a/backends/fs/symbian/symbian-fs.cpp b/backends/fs/symbian/symbian-fs.cpp
index 0e9cbba86c..bf5f9e2b82 100644
--- a/backends/fs/symbian/symbian-fs.cpp
+++ b/backends/fs/symbian/symbian-fs.cpp
@@ -109,7 +109,7 @@ FSList SymbianFilesystemNode::listDir(ListMode mode) const {
assert(_isDirectory);
FSList myList;
- if (_isPseudoRoot) {
+ if (_isPseudoRoot && mode != kListAllNoRoot) {
// Drives enumeration
RFs fs = CEikonEnv::Static()->FsSession();
TInt driveNumber;
diff --git a/backends/fs/windows/windows-fs.cpp b/backends/fs/windows/windows-fs.cpp
index 4b1f671916..b7a22a301f 100644
--- a/backends/fs/windows/windows-fs.cpp
+++ b/backends/fs/windows/windows-fs.cpp
@@ -174,7 +174,7 @@ FSList WindowsFilesystemNode::listDir(ListMode mode) const {
FSList myList;
- if (_isPseudoRoot) {
+ if (_isPseudoRoot && mode != kListAllNoRoot) {
#ifndef _WIN32_WCE
// Drives enumeration
TCHAR drive_buffer[100];
diff --git a/common/file.cpp b/common/file.cpp
index 90f211ccd4..5a50d24233 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -159,7 +159,7 @@ void File::addDefaultDirectoryRecursive(const String &directory, int level, int
baseLen++;
}
- FSList fslist(dir.listDir(FilesystemNode::kListAll));
+ FSList fslist(dir.listDir(FilesystemNode::kListAllNoRoot));
for (FSList::const_iterator file = fslist.begin(); file != fslist.end(); ++file) {
if (file->isDirectory()) {