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
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
C / C ++에 표준 부호 함수 (signum, sgn)를 사용하는 방법 (0) | 2021.08.04 |
---|---|
#ifndef 및 #define이 C ++ 헤더 파일에서 사용되는 이유 (0) | 2021.08.04 |
C ++ 11은 표준화 된 메모리 모델의 도입이 미치는 영향 (0) | 2021.07.28 |
C ++ 11에서 람다식이란? (0) | 2021.07.28 |
C ++ 17의 새로운 기능 (0) | 2021.07.27 |