Windows 파일 시스템과 동일한 파일 순서를 어떻게 얻을 수 있습니까? 이름, 크기, 마지막으로 수정 한 날짜 시간, 태그 (승리 7), 평가 (승리 7) 등의 많은 파일 시스템 정렬 항목이 있으므로 CFileFind API를 사용하여 Windows 파일 시스템의 정렬 동작을 시뮬레이트하는 경우 매우 어렵습니다. 그럼 어떻게 순서가 Windows 파일 시스템과 동일한 파일을 얻을 수 있습니까 ??Windows 시스템 문제에 대한 질문
답변
CFindFile이 무엇인지 모르겠지만 FindFirstFile
과 친구가 NTFS 디렉토리에있는 순서대로 파일을 반환합니다. 즉, 가장 바람직 할 이유
나는,
레이몬드 첸 그러나 "Why do NTFS and Explorer disagree on filename sorting?"
에 꽤 상세한 기사를했다 ...하지만, 그것은 누구의 정의에 의해 정확히 "직관적"아니다, 잘 모르겠어요 FindFirstFile()
과 그 친척은 실제로 결과를 정렬하지 않는다는 것을 기억하십시오. 파일 시스템이 어떤 순서로든 파일을 돌려주는 것입니다. NTFS는 자체 목적을 위해 주문을하고 있습니다. (주문이 지정되어 있는지 확신 할 수 없습니다. 주문한 것으로 보이는 것은 아마도 행복한 우연 일 것입니다.) FAT 파일 시스템과 네트워크 파일 시스템은 그들 자신의 순서를 가질 것입니다. (또는 순서가 없습니다 - 어떤 순서로든 파일이 디렉토리에있을 수 있습니다 - 나는 FAT 시스템이 그렇게 생각합니다).
FindFirstFile()
과 친구들이 반환 한 파일에 대한 특정 주문이 필요한 경우 직접 정렬해야합니다.
FindFirstFile()
docs : "FindFirstFile은 검색 결과를 정렬하지 않습니다. 자세한 내용은 FindNextFile을 참조하십시오."
및 docs for FindNextFile()
: "알파벳 순서와 같은 파일 검색이 반환되는 순서는 보장되지 않으며 파일 시스템에 따라 달라집니다. 데이터를 정렬해야하는 경우 응용 프로그램에서 정렬을 수행해야합니다 모든 결과를 얻은 후에. "
CFileFind()
는 반환 된 파일 이름의 순서에 대한 약속을하지 않습니다. 어떤 정렬도 수행하면 놀라실 것입니다 (대상 디렉토리에서 가능한 모든 파일을 가져올 수 있기 때문에 첫 번째 파일을 반환 할 수 있기 때문에 놀랐습니다). 그것을 뽑아 라).
Emm, 익스플로러와 동일한 파일 순서를 검색하고 싶지만 익스플로러의 파일 순서는 파일 크기, 마지막으로 수정 한 날짜 시간 등으로 사용자가 설계했으며 탐색기에 정렬 기준이 많기 때문에 탐색 파일 정렬을 시뮬레이트합니다. 그래서 파일 시퀀스를 탐색 할 수있는 방법이 있습니까? – user290305
- 1. sas formating 문제에 대한 질문
- 2. 내 googlemaps 문제에 대한 또 다른 질문
- 3. Windows 이벤트에 대한 질문
- 4. C++ Windows 링크 하위 시스템 질문
- 5. datePicker에 대한 질문 windows 전화
- 6. SQL SERVER 시스템 개체에 대한 질문
- 7. 가벼운 스키마 유연한 문제에 적합한 데이터베이스 시스템
- 8. JDBC 문제에 대한 도움말
- 9. 주사위 문제에 대한 알고리즘
- 10. 벡터 문제에 대한 알고리즘
- 11. 정규식 이름 문제에 대한
- 12. 포인터 문제에 대한 포인터
- 13. memorystream 문제에 대한 잉크
- 14. 시스템 설계 질문
- 15. PHP 로그인 시스템 질문
- 16. SSL 인증서 문제 - Windows 시스템
- 17. "냉동"Windows 시스템
- 18. 댓글 시스템 질문
- 19. GNU 빌드 시스템 질문
- 20. 2-Satisfiability 문제에 대한 알고리즘
- 21. JSON 문제에 대한 도움이 필요합니다
- 22. 이 유형의 문제에 대한 패턴
- 23. Unity BuildUp 문제에 대한 문제
- 24. VS2008의 C# 문제에 대한 Quickfix
- 25. 배열 문제에 대한 값 확인.
- 26. 해밀턴 경로 문제에 대한 변이
- 27. 이 디자인 문제에 대한 답변
- 28. 정적 속성 문제에 대한 바인딩
- 29. 사이트 문제에 대한 다국어 지원
- 30. 알고리즘은 유향 그래프의 문제에 대한
CFindFile 메서드는 FindFirstFile과 비슷하며 둘 다 알파벳순으로 정렬됩니다. 누군가가 IShellFolder API를 사용하도록 제안합니다. IShellFolder 메서드에 익숙한 사람이 있습니까? – user290305
오, 나는 당신의 질문을 이해하지 못했습니다 ... 나는 당신이 파일 시스템 순서대로, 탐색기가 사용하는 순서로 정렬 된 파일을 원하는 줄 알았는데. Explorer는 * 대략 * StrCmpLogicalW와 같은 순서를 사용하므로 파일 이름을 정렬하는 데이 파일을 사용할 수 있습니다. –
Emm, 파일 시스템 순서가 아닌 탐색기와 동일한 파일 순서를 검색하려고합니다. 그러나 탐색기의 파일 순서는 파일 크기, 마지막으로 수정 한 날짜 시간 등으로 사용자가 설계했으며 탐색기에는 많은 정렬 기준이 있으므로 탐색 파일 정렬을 시뮬레이트 할 수 없습니다. 따라서 파일을 StrCmpLogicalW로 정렬하는 것으로는 충분하지 않습니다. – user290305