FindFirst ()에서 찾은 파일이 압축되어 압축 된 비트 세트가있는 것으로 나타났습니다. 알아내는 데 시간이 좀 걸렸고 압축 된 비트가 설정되었을 때 TSearchRec.Attr의 실제 값을 명시한 참조를 웹에서 찾을 수 없었습니다. 파일 고급 속성에서 "파일 압축"을 클릭 해제하면 트릭이 발생했습니다.
-------------------의 속성은 의 레코드 와 함께 사용되는 Windows 파일 속성에TSearchRec
직접 매핑됩니다 .TWin32FindData
FindFirstFile
16 진수 (항상 10 진수가 아닌 16 진수로 비트 필드를 렌더링)에서 2080은 $ 0820이며 2 비트가 설정되어 있음이 분명합니다. 하위 비트는 File_Attribute_Archive
, 또는 Delphi에 faArchive
해당하고 상위 비트는에 해당합니다 File_Attribute_Compressed
. Delphi와 함께 제공되는 단위에는 해당되지 않지만 JCL 의 JclFileUtils.faCompressed
기호를 사용할 수 있습니다 .
에서 JclFileUtils
제다이 코드 라이브러리 I에서 단위 발견
faNormalFile = $00000080;
...
faNotContentIndexed = $00002000;
2080이 16 진수이면 이것이 바로 그것입니다.
참조 : http://www.tek-tips.com/viewthread.cfm?qid=1543818&page=9
편집 : 2080 id 십진수 및 2080 dec = 820 hex 동안 속성은 다음의 조합입니다.
faArchive = $00000020;
faCompressed = $00000800;
-------------------이렇게하면 faDirectory 비트가 추출되며 압축 비트 설정 여부에 대해 걱정할 필요가 없습니다.
if ((sr.Attr AND faDirectory) <> 0) then
begin
.......
end;
출처
https://stackoverflow.com/questions/2005924