[수정]이 함수 좀 봐주세요

lalupo20의 이미지

const char* Utils::searchSDCardPath(const char* path) {
	DIR* dp;
	struct dirent* entry;
	static bool find = false;
	static string aPath;
	dp = opendir(path);
 
	if (dp == NULL) {
		return NULL;
	}
	LOGI(path);
	while ((entry = readdir(dp))) {
		if (strcmp(entry->d_name, ".") == 0 ||
			strcmp(entry->d_name, "..") == 0) {
			continue;
		}
 
		if (entry->d_type == DT_DIR) {
			LOGI("folder name %s", entry->d_name);
			string pathStr = path;
			if (strcmp(entry->d_name, "Download") == 0) {
				find = true;
				aPath = path;
				LOGI("path - %s", aPath.c_str());
				return aPath.c_str();
			}
			else {
				pathStr += "/";
				pathStr += string(entry->d_name);
				chdir(pathStr.c_str());
				searchSDCardPath(pathStr.c_str());
				chdir("..");
			}
			if (find == true) 
				return aPath.c_str();
		}
	}
	closedir(dp);
	return path;
}

android sdcard 절대경로를 찾기 위한 코드입니다.

모든 기기 동일하게 sdcard 경로 안에 Download라는 폴더가 있다는 사실을 근거로 작성한 코드 입니다.

원래는 Android 폴더가 있다는 가정으로 찾았었는데

내부에 Android라는 폴더가 또 있을지도 모른다는 생각이 들어서 Download로 바꾸었습니다.

이 코드 제 핸드폰에서는 정상작동하는데 갤s7에서는 정상작동하지 않네요.

어떤 문제가 있을 수 있나요?

절대경로 추출하는거 이 방법 말고 다른 방법은 없을까요?

경험해보신분이 계신다면 조언 부탁드립니다.