Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9bac0a9f authored by Xavier Ducrohet's avatar Xavier Ducrohet Committed by Android Code Review
Browse files

Merge "Fix to compile for windows"

parents 0bc12a0b 9102165f
Loading
Loading
Loading
Loading
+25 −4
Original line number Diff line number Diff line
@@ -9,8 +9,9 @@
#include <utils/String8.h>
#include <utils/KeyedVector.h>


#include <iostream>
#include <dirent.h>
#include <sys/stat.h>

#include "DirectoryWalker.h"
#include "FileFinder.h"
@@ -21,6 +22,25 @@ using android::String8;
using std::cout;
using std::endl;

// Private function to check whether a file is a directory or not
bool isDirectory(const char* filename) {
    struct stat fileStat;
    if (stat(filename, &fileStat) == -1) {
        return false;
    }
    return(S_ISDIR(fileStat.st_mode));
}


// Private function to check whether a file is a regular file or not
bool isFile(const char* filename) {
    struct stat fileStat;
    if (stat(filename, &fileStat) == -1) {
        return false;
    }
    return(S_ISREG(fileStat.st_mode));
}

bool SystemFileFinder::findFiles(String8 basePath, Vector<String8>& extensions,
                                 KeyedVector<String8,time_t>& fileStore,
                                 DirectoryWalker* dw)
@@ -45,14 +65,14 @@ bool SystemFileFinder::findFiles(String8 basePath, Vector<String8>& extensions,

        String8 fullPath = basePath.appendPathCopy(entryName);
        // If this entry is a directory we'll recurse into it
        if (entry->d_type == DT_DIR) {
        if (isDirectory(fullPath.string()) ) {
            DirectoryWalker* copy = dw->clone();
            findFiles(fullPath, extensions, fileStore,copy);
            delete copy;
        }

        // If this entry is a file, we'll pass it over to checkAndAddFile
        if (entry->d_type == DT_REG) {
        if (isFile(fullPath.string()) ) {
            checkAndAddFile(fullPath,dw->entryStats(),extensions,fileStore);
        }
    }
@@ -90,3 +110,4 @@ void SystemFileFinder::checkAndAddFile(String8 path, const struct stat* stats,
    cout << endl;
#endif //DEBUG
}
+2 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ public:
    virtual bool findFiles(String8 basePath, Vector<String8>& extensions,
                           KeyedVector<String8,time_t>& fileStore,
                           DirectoryWalker* dw) = 0;

    virtual ~FileFinder() {};
};

class SystemFileFinder : public FileFinder {