프로그래밍 언어/C++

C 또는 C ++를 사용하여 디렉토리의 파일 목록을 가져오는 방법

Rateye 2021. 7. 30. 10:15
728x90
반응형

 

질문 : C 또는 C ++를 사용하여 디렉토리의 파일 목록을 어떻게 가져올 수 있습니까?

내 C 또는 C ++ 코드 내부에서 디렉토리의 파일 목록을 어떻게 확인할 수 있습니까?

ls 명령을 실행하고 프로그램 내에서 결과를 구문 분석 할 수 없습니다.

답변

업데이트 2017 :

C ++ 17에는 이제 파일 시스템의 파일을 나열하는 공식적인 방법이 있습니다 : std::filesystem . 이 소스 코드와 함께 Shreevardhan 의 훌륭한 답변이 아래에 있습니다.

#include <string>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;

int main()
{
    std::string path = "/path/to/directory";
    for (const auto & entry : fs::directory_iterator(path))
        std::cout << entry.path() << std::endl;
}

이전 답변 :

작고 간단한 작업에서는 boost를 사용하지 않고 dirent.h를 사용합니다. UNIX에서 표준 헤더로 사용할 수 있으며 Toni Ronkko가 만든 호환성 레이어 를 통해 Windows에서도 사용할 수 있습니다.

DIR *dir;
struct dirent *ent;
if ((dir = opendir ("c:\\src\\")) != NULL) {
  /* print all the files and directories within directory */
  while ((ent = readdir (dir)) != NULL) {
    printf ("%s\n", ent->d_name);
  }
  closedir (dir);
} else {
  /* could not open directory */
  perror ("");
  return EXIT_FAILURE;
}

그것은 단지 작은 헤더 파일 일 뿐이며, 부스트와 같은 큰 템플릿 기반 접근 방식을 사용하지 않고 필요한 대부분의 간단한 작업을 수행합니다 (범죄 없음, 저는 부스트를 좋아합니다!).

출처 : https://stackoverflow.com/questions/612097/how-can-i-get-the-list-of-files-in-a-directory-using-c-or-c
728x90
반응형