'ls'없이 디렉토리에 있는 파일 리스트 불러오기


C/C++에서 디렉토리에 있는 파일 리스트를 불러오고 싶어요 lscommand 쓰는 방법 말고 다른 게 필요해요

  • 2016년 01월 07일에 작성됨

조회수 302


1 답변


좋아요
0
싫어요
채택취소하기

플랫폼에 따라 쓰는 방법이 다릅니다

1. ###unix/linux - dirent.h

DIR *dir;
struct dirent *ent;
char* src = "c:\\file path ..."
if ((dir = opendir (src)) != NULL) { /* 디렉토리를 열 수 있는 경우 */
  /* 디렉토리 안에 있는 모든 파일&디렉토리 출력 */
  while ((ent = readdir (dir)) != NULL) {
    printf ("%s\n", ent->d_name);
  }
  closedir (dir);
} else { /* 디렉토리를 열 수 없는 경우 */
  perror ("");
  return EXIT_FAILURE;
}

2. windows - Windows.h

#include <Windows.h>

vector<string> get_all_files_names_within_folder(string folder)
{
    vector<string> names;
    char search_path[200];
    sprintf(search_path, "%s/*.*", folder.c_str());
    WIN32_FIND_DATA fd; 
    HANDLE hFind = ::FindFirstFile(search_path, &fd); 
    if(hFind != INVALID_HANDLE_VALUE) { 
        do { 
            // read all (real) files in current folder
            // , delete '!' read other 2 default folder . and ..
            if(! (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) {
                names.push_back(fd.cFileName);
            }
        }while(::FindNextFile(hFind, &fd)); 
        ::FindClose(hFind); 
    } 
    return names;
}
  • 2016년 01월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close