diff options
-rw-r--r-- | backends/fs/fs.h | 3 | ||||
-rw-r--r-- | backends/fs/symbian/symbian-fs.cpp | 2 | ||||
-rw-r--r-- | backends/fs/windows/windows-fs.cpp | 2 | ||||
-rw-r--r-- | common/file.cpp | 2 |
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()) { |