Attributes of folder, a i od fajl?

Attributes of folder, a i od fajl?

offline
  • Pridružio: 26 Feb 2004
  • Poruke: 55
  • Gde živiš: Banja Luka

Posto mi je potrebno da program razlikuje folder od fajla, primjetio sam
da neke foldere program propusta prepoznati zbog njihovih atributa(i faHidden i faReadOnly i fafa...), pa sam dodao jos kombinacija istih:
if Sr.Attr in [16, 17, 18, 19, 20, 21, 22, 23] then
JeFolder.
Pitanje je(posto to neko vjerovatno vec zna, a da ne bih previse dugo experimentisao) da nema neki visak u prethodno navedenim atributima,npr. 20 tj. faDirectory i faSysFile ili neki manjak kombinacija?
I kako to da sam pretrazujuci svoj C:\ dobio nebulozne atribute fajlova
npr. 8224 -> C:\WINDOWS\system32\wbem\Repository\FS\INDEX.BTR,
koji se ne mogu dobiti nikakvom kombinacijom atributa iz TSearchRec-a?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Koji Delphi?
D7 nema definisan faNormal ($00000080)



offline
  • Pridružio: 26 Feb 2004
  • Poruke: 55
  • Gde živiš: Banja Luka

Napisano: 18 Jun 2010 9:38

Instaliran mi je D7 i BDS2006 i kod njih ne postoji faNormal. I da npr. ima
kako bi mi pomogao u razlikovanju foldera i fajla?

Dopuna: 18 Jun 2010 13:04

r 1 + 16 = 17
h 2 + 16 = 18
rh 1 + 2 + 16 = 19
s 4 + 16 = 20
rs 1 + 4 + 16 = 21
hs 2 + 4 + 16 = 22
rhs 1 + 2 + 4 + 16 = 23
a 32 + 16 = 48
ra 1 + 32 + 16 = 49
ha 2 + 32 + 16 = 50
rha 1 + 2 + 32 + 16 = 51
sa 4 + 32 + 16 = 52
rsa 1 + 4 + 32 + 16 = 53
hsa 2 + 4 + 32 + 16 = 54
rhsa 1 + 2 + 4 + 32 + 16 = 55

r h s a
1 2 4 32


evo mogucih kombinacija za foldere.

znaci ispravan kod za razlikovanje foldera i fajla je ovo

if Sr.Attr in [16, 17, 18, 19, 20, 21, 22, 23, 48, 49, 50, 51, 52, 54, 53, 55] then

valjda.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Iskreno, ne razumem sto radis ovako komplikovano.
Zar nije dovoljno da proveris da li imas faDirectory medju atributima?
Recimo,
 if sr.attr and faDirectory <> 0 then ...

offline
  • Pridružio: 26 Feb 2004
  • Poruke: 55
  • Gde živiš: Banja Luka

Da, da, to je onaj potpuno ispravan kod, a ne ovo moje, u stvari to sam i pitao i dobio odgovor. Iako je pocetni kod krenuo od slicnog "(Sr.Attr and faDirectory) = faDirectory" vremenom se izvitoperio i dosao na ovaj komplikovani(bespotrebni).

Hvala.

Pitanje za fajlove ostaje kako je moguce dobiti atribut iz gore navedenog fajla i npr. 8208 -> C:\WINDOWS\Prefetch?

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Evo pogledaj funkciju koju ja koristim u jednom od programa:
function GetAttributes(f: WideString): string; var   attrs: Integer; begin   attrs := WideFileGetAttr(f);   Result := '';   if attrs and faDirectory > 0 then     Result := Result + 'd'   else     Result := Result + '-';   if attrs and faReadOnly > 0 then     Result := Result + 'r'   else     Result := Result + '-';   if attrs and faArchive > 0 then     Result := Result + 'a'   else     Result := Result + '-';   if attrs and faHidden > 0 then     Result := Result + 'h'   else     Result := Result + '-';   if attrs and faSysFile > 0 then     Result := Result + 's'   else     Result := Result + '-'; end;
Ovo daje listu atributa kao u recimo Total Commanderu (na primer: r-hs).
Znaci, nema druge osim da proveris prisustvo svakog atributa posebno.

Osim gore spomenutih, na NTFS fajl sistemima imas jos par atributa, tipa Volume itd.
Mozes i njih da ubacis u funkciju.

Ko je trenutno na forumu
 

Ukupno su 341 korisnika na forumu :: 7 registrovanih, 1 sakriven i 333 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Sale, Ilija Cvorovic, kayvan6079, Konda, Markogrozni, sasa76, suton