문제

다음을 사용하여 매크로 DB_CONFIG_FILE_PATH_1로 정의 된 파일을 검색하고 있습니다.

wchar_t filename[100];
SearchPath( L".\\", DB_CONFIG_FILE_PATH_1, NULL, 100, filename, NULL);

파일이 c : directory에 있으면 발견됩니다. 그러나 파일이 하위 디렉토리 중 하나에 있으면 함수는 찾을 수 없습니다.

일부는 위 함수가있는 파일의 하위 디렉터를 포함한 모든 드라이브를 검색하는 방법을 설명 할 수 있습니다.

FindFirstFile 함수를 사용하지 않습니다. 함수가 파일로 핸들을 반환하더라도 파일의 경로를 검색 할 수 없기 때문에 파일의 경로를 검색 할 수 없기 때문입니다.

그것을 말하면 파일의 전체 경로 이름을 원합니다. 나는 파일의 이름을 알고 있지만 그 파일의 이름은 어디에 있는지 모릅니다.

도움이 되었습니까?

해결책

Win32의 기본 코드에서 하위 디렉토리를 검색하려면 FindFirstFile을 사용하여 직접 수행 한 다음 하위 디렉터로 재발해야합니다.

FindFirstFile의 반환 값은 파일 핸들이 아닙니다. 파일 정보는 Win32_FIND_DATA 구조에 포함되어 있습니다. 핸들은 검색을 계속하기 위해 FindNextFile으로 호출에 사용됩니다. 검색 중에 전체 경로 이름을 얻으려면 현재 어떤 디렉토리를 추적하고 발견 된 디렉토리 이름을 경로에 추가해야합니다.

SearchPath는 경로 환경 변수 또는 하위 디렉토리를 검색하지 않는 경우 첫 번째 매개 변수에서만 검색합니다.

다른 팁

GetCurrentDirectory() 길을 말해야합니다.

http://msdn.microsoft.com/en-us/library/aa364934(vs.85).aspx

그리고 두 번째 논쟁 FindFirstFile():

http://msdn.microsoft.com/en-us/library/aa364418(vs.85).aspx

그것은 a입니다 WIN32_FIND_DATA 구조는 파일 이름을 알려야합니다.

http://msdn.microsoft.com/en-us/library/aa365740(vs.85).aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top