* commit '3a2d1c2351c0b4eeb4dc4d91d1c334b9f8ba00ed': Fix to compile for windows
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -89,4 +109,5 @@ void SystemFileFinder::checkAndAddFile(String8 path, const struct stat* stats,
|
||||
#ifdef DEBUG
|
||||
cout << endl;
|
||||
#endif //DEBUG
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user