Toon posts:

Root directory uitlezen van een FAT systeem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi, voor school ben ik bezig met het bekijken van FAT systemen. Nu begrijp ik alles, behalve de laatste vraag.

FAT bestaat uit 4 verschillende sectoren
- boot sector
- FAT sectoren
- root directory sectoren
- data sectoren

Nu ben ik bezig met het uitlezen van de ROOT directory. Hier staan alle entries in van bestanden en directories. Hier een overzicht wat het betekend:
Veld Bytes Betekenis
0 0- 7 Bestandsnaam in ASCII
1 8-10 Extensie in ASCII
2 11 Attibuten
Bit Betekenis
0 Read-Only
1 Hidden
2 System
3 Volume-label
4 Subdirectory
5 Archive
6 Reserved
7 Reserved
3 12-21 Gereserveerd voor toekomstig gebruik
4 22-23 Tijd
5 24-25 Datum
6 26-27 Verwijzing naar plaats in de FAT waar de eerste sector van het bestand te vinden is. Via doorverwijzingen in de FAT worden de andere sectoren van het bestand vastgelegd.
7 28-31 Lengte van het bestand in bytes.
De grootte van de ROOT-directory is afhankelijk van de grootte van de disk.


Nu wordt gevraagd naar wat het attribuut is van een bestand en van een subdirectory. Bij een bestand geeft hij de hexidecimale waarde van 20 en bij een subdirectory een hexidecimale waarde van 10.

Nu zou ik bijvoorbeeld verwachten bij een subdirectory dat bit 4 op 1 komt te staan, dus dat het iets als 00000000 00010000 eruit komt te zien. Maar het is dus 00010000 000000000, klopt het dat de 1 nu ook echt op het 4de bit staat? of moet ik bij 0 beginnen te tellen? bij het bestand stond de waarde op 20, dit is dus 00100000 00000000, betekent dit dan dat het attribuut volume-label is? dit lijkt me niet...

Zou iemand mij kunnen vertellen wat ik verkeerd doe? Hoop dat ik het een beetje duidelijk heb omschreven! alvast bedankt!

[ Voor 28% gewijzigd door Verwijderd op 16-10-2005 18:54 ]


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Wat ik sowieso niet snap is dat je een 16-bits getal weergeeft (00000000 00010000) voor een 8-bits waarde (positie 11) - dus dat strookt al niet met hoe ik het interpreteer.

Verwijderd

Topicstarter
Ja, dat klopt, dat had ik ook al in de gaten... maar ik ben er nu ook uit!

Ik heb de diskette een volume label gegeven en de hexidecimale waarde hiervan was 08, dit is dus binair 0000 1000, je moet dus aan de rechterkant beginnen te tellen en dan vanf 0 beginnen

een dubdirectory dat hex10 is wordt dus 0001 0000 (attribuut 4) -> archive
en een bestand dat hex20 is wordt dus 0010 0000 (attribuut 5) -> subdirectory

Bit Betekenis
0 Read-Only
1 Hidden
2 System
3 Volume-label
4 Subdirectory
5 Archive
6 Reserved
7 Reserved