2009-11-20 6 views
0

dirent & stat를 C 언어로 사용하여 파일 및 폴더 목록을 가져 왔지만 원하는 순서대로 나열되지 않았습니다. 먼저 디렉토리를 나열하고 파일을 나열합니다. 예 :파일 및 폴더 재정렬

. 
.. 
[dir1] 
[dir2] 
[file1] 
[file2] 

dirent를 사용하여이를 수행 할 방법이 있습니까? 아니면 수동으로 출력 목록을 주문하고 싶지 않습니다. 감사합니다. .

답변

0

처음에는 dir 만 표시하고 두 번째는 파일 만 표시하는 dir을 두 번 통과시킵니다. 당신이 단지 dirs-then-files을 원한다면 나는 이것을 할 것입니다. 몇 가지 세부 정렬 기준이 있다면 배열에 항목을 저장하고 사용자 지정 순서 지정 함수로 정렬합니다.

0

당신은 그들을 읽고 자신을 정렬해야합니다. 또는 다른 라이브러리 기능을 사용하십시오.

3

opendir/readdir을 사용하는 경우이를 정렬해야하지만, 모든 디렉토리 항목을 정렬하려면 scandir (3) (* nix 시스템을 사용한다고 가정)을 사용할 수 있습니다.

0

dir과 file에 대한 두 가지 데이터 구조를 유지 관리 할 수 ​​있습니다. dirent로 디렉토리 읽기를 시작하면 해당 구조 런타임에 삽입하십시오.

두리스트가 각각 디렉토리와 파일로 끝납니다. 이 메서드는 O (N) 한 번에 끝나고 병합은 O (1) 한 명령 만 사용합니다.