문제

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;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top