当搜索文件FindFirst()我得到一个属性的价值在TSearchRec.Attr领域2080.它不是指定的帮助,因为只有这些数值可用,没有结合它们的产量2080:

1faReadOnly
2faHidden
4faSysFile
8faVolumeID
16fa目录
32faArchive
64faSymLink
71faAnyFile

任何人都不会知道什么2080意味着什么和为什么我得到这一属性的价值?该系统XP嵌入。

有帮助吗?

解决方案

事实证明,在FindFirst找到的文件()被压缩,因此具有经压缩的比特集。我花了一段时间才能找出和我找不到当压缩位时,它说TSearchRec.Attr的实际价值在网络上的参考。 Unclicking“压缩文件”,在文件的高级属性并获得成功。

其他提示

属性 TSearchRec 地图直接向 Windows文件的属性 使用与 TWin32FindData 从记录 FindFirstFile.

在hex(始终呈现位域在六角,不是十进制),2080美元0820,在这里很明显有两个位置。下位相对应 File_Attribute_Archive, 或德尔福 faArchive, 和上位相对应 File_Attribute_Compressed.它没有等效的单位,配有德尔斐,但是可以使用 JclFileUtils.faCompressed 符号 JCL.

在从绝代码库JclFileUtils单元我发现:

faNormalFile        = $00000080;
...
faNotContentIndexed = $00002000;

如果2080是十六进制,那么这是它。

看也于: HTTP://www.tek-tips的.com / viewthread.cfm?QID = 1543818&页= 9

编辑: 而2080 ID小数,和2080 DEC = 820十六进制然后属性的组合:

 faArchive     = $00000020;
 faCompressed  = $00000800;

这将提取faDirectory位,你不要担心设置或不压缩位。

if ((sr.Attr AND faDirectory) <> 0) then

begin 
     .......
end;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top