디렉토리에 파일이 많다는 것을 알고 텍스트 파일에서 데이터를 읽고 추출하는 올바른 방법은 무엇입니까? fopen()
을 사용하여 파일에 대한 포인터를 얻은 다음 while(fgets(..) != null){}
과 같은 작업을 수행하여 전체 파일을 읽을 수는 있지만 어떻게하면 다른 파일에서 읽을 수 있습니까? 디렉토리의 모든 파일을 반복하고 싶습니다.C에서 여러 텍스트 파일 읽기
2
A
답변
2
샘, 다음과 같은 작은 함수에서와 같이 opendir/readdir을 사용할 수 있습니다.
#include <stdio.h>
#include <dirent.h>
static void scan_dir(const char *dir)
{
struct dirent * entry;
DIR *d = opendir(dir);
if (d == 0) {
perror("opendir");
return;
}
while ((entry = readdir(d)) != 0) {
printf("%s\n", entry->d_name);
//read your file here
}
closedir(d);
}
int main(int argc, char ** argv)
{
scan_dir(argv[1]);
return 0;
}
이것은 명령 줄에서 명명 된 디렉토리를 열고 포함 된 모든 파일의 이름을 인쇄합니다. 그러나 이름을 인쇄하는 대신 원하는대로 파일을 처리 할 수 있습니다 ...
1
일반적으로 파일 목록은 프로그램에 명령 줄로 제공되므로 두 번째 매개 변수로 main()에 전달 된 포인터 배열에서 사용할 수 있습니다. 즉, 호출하는 쉘은 디렉토리의 모든 파일을 찾는데 사용되며, 프로그램은 argv []를 반복하여 각각을 열고 처리합니다.
참조. 162 "The C Programming Language", Kernighan and Ritchie, 2 판, 사용할 수있는 코드에 대한 거의 완전한 템플릿. 이 예제에서 filecopy()
기능에 대한 사용자 자신의 처리를 대체하십시오.
프로그램에서 직접 디렉토리 (또는 디렉토리)를 읽어야한다면, libc의 opendir (3) 및 관련 함수를 읽는 것이 좋습니다. 일부 시스템은 ftw (3) 또는 fts (3)라고하는 라이브러리 함수도 제공하므로 매우 편리합니다.
관련 문제
- 1. C에서 300MB 텍스트 파일 읽기
- 2. Objective C에서 텍스트 파일 읽기
- 3. C에서 배열로 텍스트 파일 읽기
- 4. C에서 여러 구분 기호가있는 파일 읽기
- 5. C에서 텍스트 파일 progressbar 읽기/쓰기
- 6. C에서 여러 스레드에서 동일한 파일 읽기 #
- 7. C에서 파일 읽기 (/ 쓰기)
- 8. C에서 #db 파일 읽기
- 9. 문제가있어 C에서 파일 읽기
- 10. C에서 단어 파일 읽기 #
- 11. C에서 Stata 파일 읽기
- 12. C에서 # .vcproj 파일 읽기
- 13. C에서 입력 파일 읽기
- 14. C에서 파일 읽기
- 15. C에서 파일 읽기
- 16. C에서 Excel 파일 읽기
- 17. C에서 디렉토리 파일 읽기
- 18. C - 여러 파일 읽기
- 19. C에서 이진 배열로 파일 읽기
- 20. C에서 파일 읽기, 무작위 오류
- 21. C에서 StackOverflowException을 일으키는 파일 읽기
- 22. 스트림에서 여러 파일 읽기
- 23. C에서 텍스트 파일 저장
- 24. D의 텍스트 파일 읽기
- 25. 텍스트 파일 읽기
- 26. HTML로 텍스트 파일 읽기
- 27. 텍스트 파일 읽기
- 28. Qt에서 텍스트 파일 읽기
- 29. 간단한 텍스트 파일 읽기
- 30. LINQ로 텍스트 파일 읽기
모든 파일을 동시에? 컴퓨터에 코어가있는만큼 많은 파일을 동시에 읽을 수있게 해주는 pthread 이외에 어떤 방법이 있는지 모르겠습니다. – Shredderroy
단순히 첫 번째 파일을 닫고 같은 파일 포인터를 사용하여 다음 파일을 열고 루프를 실행할 수 있습니까? – Kairan