findfirst (), attr = 2080에 의해보고 된 이상한 속성 값
-
18-09-2019 - |
문제
findfirst ()가있는 파일을 검색 할 때는 2080의 tsearchrec.attr 필드에서 속성 값을 얻습니다.이 값 만 사용할 수 있으므로 2080을 산출하지 않기 때문에 도움에 지정되지 않습니다.
1 Fareadonly
2 Fahidden
4 fasysfile
8 Favolumeid
16 FADIRECTORY
32 FARACHIVE
64 fasymlink
71 Faanyfile
누구든지 2080이 무엇을 의미하는지, 왜 그 속성 값을 얻는가? OS는 XP 내장되어 있습니다.
해결책
findfirst ()에서 발견 한 파일이 압축되어 압축 비트가 설정되어 있음이 밝혀졌습니다. 파악하는 데 시간이 걸렸고 컴프레스 된 비트가 설정되었을 때 Tsearchrec.attr의 실제 값을 언급 한 웹에서 참조를 찾을 수 없었습니다. 파일에서 "압축 파일"을 깔기 고급 속성이 트릭을 수행했습니다.
다른 팁
속성 TSearchRec
직접지도 Windows 파일 속성 와 함께 사용됩니다 TWin32FindData
기록 FindFirstFile
.
16 진수 (항상 비트 필드 렌더링)에서 2080은 $ 0820이며 두 개의 비트 세트가 있음이 분명합니다. 하단 비트는 다음과 같습니다 File_Attribute_Archive
, 또는 델파이 faArchive
, 상단 비트는 다음과 같습니다 File_Attribute_Compressed
. 델파이와 함께 제공되는 장치에는 동등한 것이 없지만 사용할 수 있습니다. JclFileUtils.faCompressed
상징 JCL.
~ 안에 JclFileUtils
제다이 코드 라이브러리에서 유닛을 찾았습니다.
faNormalFile = $00000080;
...
faNotContentIndexed = $00002000;
2080이 16 진이 있다면 이것이 바로 그다.
봐요 : http://www.tek-tips.com/viewthread.cfm?qid=1543818&page=9
편집 : 2080 ID 소수점, 2080 Dec = 820 16 진수는 속성이 다음과 같습니다.
faArchive = $00000020;
faCompressed = $00000800;
이렇게하면 Fadirectory 비트가 추출되며 압축 비트 세트에 대해 걱정할 필요가 없습니다.
if ((sr.Attr AND faDirectory) <> 0) then
begin
.......
end;