다른 버전에서 다중 스레드 및 다중 처리를 사용하여 사용자가 입력 한 루트 폴더를 구문 분석하고 싶습니다. 그러나 다음에 폴더 나 파일이 있는지 여부를 루트 폴더를 통해 구문 분석하는 동안 어떻게 구별 할 수 있습니까? 요약하면 나는 다가오는 파일이나 폴더를 구별 할 수있는 방법을 배우고 싶다. 나는 이것이 폴더라면,이 폴더를 동적 스레드 및/또는 process.If 파일로 여는 것을 허용하기 때문에 이것을 배우고 싶다. 기존 스레드 또는 프로세스는 다른 스레드 및/또는 프로세스를 만들 필요없이 작업을 계속할 수 있습니다. 문제점을 표현할 수 있기를 바랍니다. 응답을 기다리고 있습니다. 감사합니다.루트 폴더로 구문 분석하는 동안 어떻게 파일 또는 C 언어로 폴더 여부를 곧 구별 할 수 있습니까?
0
A
답변
0
stat()
function을 사용하여 경로가 파일 또는 디렉토리를 참조하고 반환 된 구조의 st_mode
필드를 점검 할 수 있습니다 (http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/stat.h.html 참조).
Windows에서는 GetFileAttributesEx
을 사용하여 파일 또는 디렉토리인지 여부를 확인할 수있는 파일 속성을 가져올 수 있습니다.
다른 스레드 나 프로세스가 파일 시스템을 동시에 업데이트하는 경우 사용하는 내용이 모두 경쟁 조건이 될 수 있습니다. 파일/디렉토리는 사용자가 확인한 후에 삭제되거나 변경 될 수 있으므로 액세스하기 전에
0
다음은 몇 가지 간단한 샘플입니다. 여러 루트 위치에서 스레드를 실행하고 이러한 경로를 반복적으로 호출하고 모든 데이터를 동기화하는 것은 전적으로 사용자의 몫입니다.
* nix 시스템에서;
struct dirent *entry;
while ((entry = readdir("/root")) != NULL)
{
if (entry->d_type == DT_DIR)
{
// do something
}
}
closedir(dir);
윈도우즈 :
WIN32_FIND_DATA findData;
HANDLE hFind = FindFirstFile(("C:\\root" + "*.*").c_str(), &findData);
do
{
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// do something
}
} while (FindNextFile(hFind, &findData));
FindClose(hFind);
관련 문제
- 1. 사용자가이 항목을 구입했는지 여부를 어떻게 구별 할 수 있습니까?
- 2. Fedora와 Ubuntu를 어떻게 구별 할 수 있습니까?
- 3. 플러그인을 단편과 어떻게 구별 할 수 있습니까?
- 4. 구문 분석하는 동안 XML 업로드
- 5. 구문 분석하는 동안 XML 검색
- 6. 다른 언어로 날짜를 구문 분석하는 방법
- 7. 어떻게 C#에서 모호한 클래스 이름을 구별 할 수 있습니까?
- 8. 데이터 시간을 구문 분석하는 동안
- 9. 보기 변경 루트 폴더
- 10. 어떻게 C 언어로 문자열 배열을 재설정 할 수 있습니까?
- 11. 어떻게 C 언어로 후기 바인딩을 할 수 있습니까?
- 12. Eclipse에서 폴더로 어떻게 가져올 수 있습니까?
- 13. 폴더 크기를 분석하는 앱 ?? C# .net
- 14. C++ 헤더 파일 컬렉션을 구문 분석하는 방법은 무엇입니까?
- 15. CDATA를 구문 분석하는 동안 문제가 발생했습니다. 위의 태그를 구문 분석하는 동안 충돌이 발생하면서
- 16. XML 파일을 구문 분석하는 동안 인코딩 문제
- 17. 현재 폴더 위에있는 폴더로 파일 업로드
- 18. 어떻게 has_many 관계의 레코드를 구별 할 수 있습니까?
- 19. 구문 분석하는 동안 내용의 정규 표현식 검색하기
- 20. EntityName을 구문 분석하는 동안 오류가 발생했습니다.
- 21. 일반적으로 HTML을 구문 분석하는 C#?
- 22. C++ 프로그램 인수를 구문 분석하는
- 23. Hibernate 루트 폴더 설정
- 24. pixdaus 피드를 구문 분석하는 동안 문제가 발생했습니다.
- 25. J2ME에서 XML을 구문 분석하는 동안 폼로드하기
- 26. ISAPI 필터는 IIS 또는 ISA에 의해로드되는 것을 어떻게 구별 할 수 있습니까?
- 27. Perl 서브 루틴은 파일 이름, 파일 처리, * DATA 및 * STDIN을 어떻게 구별 할 수 있습니까?
- 28. C#에서 XML을 구문 분석하는 동안 경로에 잘못된 문자가 있습니다.
- 29. 다른 리터럴 인 Javascript 객체를 어떻게 구별 할 수 있습니까?
- 30. Document 개체를 구문 분석하는 동안 멈추지 않으시겠습니까?