'==============
'API-ATTRIB.BAS
'==============
'Get/Set File Attribues using kernel32 functions.
'THIS IS FOR QB64 IN WINDOWS ONLY!
'Coded by Dav, APR/2020
'If GetFileAttibutesA fails it returns -1
'More info: http://allapi.mentalis.org/apilist/GetFileAttributes.shtml
FUNCTION GetFileAttributesA&
(lpFileName$
) 'If SetFileAttributesA fails it returns 0
'More info: http://allapi.mentalis.org/apilist/SetFileAttributes.shtml
'You can use getLastError to get extended error information
CONST FILE_ATTRIBUTE_READONLY
= 1 CONST FILE_ATTRIBUTE_HIDDEN
= 2 CONST FILE_ATTRIBUTE_SYSTEM
= 4 CONST FILE_ATTRIBUTE_DIRECTORY
= 16 CONST FILE_ATTRIBUTE_ARCHIVE
= 32 CONST FILE_ATTRIBUTE_NORMAL
= 128 CONST FILE_ATTRIBUTE_TEMPORARY
= 256 CONST FILE_ATTRIBUTE_COMPRESSED
= 2048
'Filename must be null terminated.
'Take a look at qb64.exe file...
PRINT GetFileAttributesA
("qb64.exe" + CHR$(0))
'It should show 32, which means ARCHIVE attribute