// Reads the directory referred to by 'pathBytes', adding each directory entry // to 'entries'. static bool readDirectory(JNIEnv* env, jbyteArray pathBytes, DirEntries& entries) { ScopedByteArray path(env, pathBytes); ScopedReaddir dir(&path[0]); if (dir.isBad()) { return false; } const char* filename; while ((filename = dir.next()) != NULL) { if (strcmp(filename, ".") != 0 && strcmp(filename, "..") != 0) { if (!entries.push_front(filename)) { jniThrowException(env, "java/lang/OutOfMemoryError", NULL); return false; } } } return true; }
// Reads the directory referred to by 'pathBytes', adding each directory entry // to 'entries'. static bool readDirectory(JNIEnv* env, jstring javaPath, DirEntries& entries) { ScopedUtfChars path(env, javaPath); if (path.c_str() == NULL) { return false; } ScopedReaddir dir(path.c_str()); if (dir.isBad()) { return false; } const char* filename; while ((filename = dir.next()) != NULL) { if (strcmp(filename, ".") != 0 && strcmp(filename, "..") != 0) { if (!entries.push_front(filename)) { jniThrowException(env, "java/lang/OutOfMemoryError", NULL); return false; } } } return true; }