diff options
author | Mike Lockwood <lockwood@google.com> | 2013-08-28 09:44:17 -0700 |
---|---|---|
committer | Mike Lockwood <lockwood@google.com> | 2013-08-28 09:44:17 -0700 |
commit | 9f6a119c8aa276432ece4fe2118bd8a3c9b1067e (patch) | |
tree | 1391656f9ad624aa99d4c7d2880d38121801a424 /tools/aapt/FileFinder.cpp | |
parent | 647b6f5ed276bf93d95e5801e5e8af2802ef5fbb (diff) |
Move frameworks/base/tools/ to frameworks/tools/
Change-Id: I3ffafdab27cc4aca256c3a5806b630795b75d5c8
Diffstat (limited to 'tools/aapt/FileFinder.cpp')
-rw-r--r-- | tools/aapt/FileFinder.cpp | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/tools/aapt/FileFinder.cpp b/tools/aapt/FileFinder.cpp deleted file mode 100644 index 18775c06863f..000000000000 --- a/tools/aapt/FileFinder.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// Copyright 2011 The Android Open Source Project -// - -// File Finder implementation. -// Implementation for the functions declared and documented in FileFinder.h - -#include <utils/Vector.h> -#include <utils/String8.h> -#include <utils/KeyedVector.h> - -#include <dirent.h> -#include <sys/stat.h> - -#include "DirectoryWalker.h" -#include "FileFinder.h" - -//#define DEBUG - -using android::String8; - -// 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) -{ - // Scan the directory pointed to by basePath - // check files and recurse into subdirectories. - if (!dw->openDir(basePath)) { - return false; - } - /* - * Go through all directory entries. Check each file using checkAndAddFile - * and recurse into sub-directories. - */ - struct dirent* entry; - while ((entry = dw->nextEntry()) != NULL) { - String8 entryName(entry->d_name); - if (entry->d_name[0] == '.') // Skip hidden files and directories - continue; - - String8 fullPath = basePath.appendPathCopy(entryName); - // If this entry is a directory we'll recurse into it - 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 (isFile(fullPath.string()) ) { - checkAndAddFile(fullPath,dw->entryStats(),extensions,fileStore); - } - } - - // Clean up - dw->closeDir(); - - return true; -} - -void SystemFileFinder::checkAndAddFile(String8 path, const struct stat* stats, - Vector<String8>& extensions, - KeyedVector<String8,time_t>& fileStore) -{ - // Loop over the extensions, checking for a match - bool done = false; - String8 ext(path.getPathExtension()); - ext.toLower(); - for (size_t i = 0; i < extensions.size() && !done; ++i) { - String8 ext2 = extensions[i].getPathExtension(); - ext2.toLower(); - // Compare the extensions. If a match is found, add to storage. - if (ext == ext2) { - done = true; - fileStore.add(path,stats->st_mtime); - } - } -} - |