Kontrolni blok datoteke (FCB), također nazvan deskriptor datoteke, vrsta je strukture podataka koju operacijski sustav računala privremeno dodjeljuje za održavanje statusa podatkovne datoteke koja se stvara ili na drugi način manipulira. U većini slučajeva, blok kontrole datoteke koristi se za pohranu osnovnih informacija o datoteci, kao što su njezin naziv, ekstenzija i lokacija na logičkom pogonu, kao i dinamičke informacije kao što je trenutna adresa unutar datoteke koja se čita. Izvorno, blok za kontrolu datoteka bio je vrlo dobro definirana struktura pod određenim operativnim sustavima, ali je od tada postao generički izraz za strukturu koja se koristi za praćenje informacija o datoteci kojom se aktivno rukuje.
Jedna važna svrha kontrolnog bloka datoteke je pomoći datotečnom sustavu pratiti stanje u kojem se datoteka nalazi kako bi spriječio različite operacije da pokušaju modificirati datoteku na konfliktne načine, kao što je čitanje iz područja datoteke koje se trenutno nalazi napisano na. Struktura se ne koristi samo za datoteke s podacima, već se može koristiti i za praćenje informacija o imenicima, iako se struktura podataka obično skraćuje kako bi se uklonila nepotrebna polja, jer direktorij ne može sadržavati podatke.
Dva operacijska sustava, točnije Microsoft® Disk Operating System (MS-DOS) i Kontrolni program za mikroprocesore (CP/M), bili su prvi operativni sustavi koji su koristili blok shemu za upravljanje datotekama. Ovi sustavi koristili su vrlo slične strukture za pomoć pri upravljanju datotekama kojima se pristupa. Kako su se razvijali drugi operativni sustavi i datotečni sustavi, koncept bloka je ostao, ali se implementacija promijenila, a struktura podataka uvelike se razlikovala od jednog sustava do drugog. Većina računalnih operacijskih sustava koji su se koristili 2011. koristi neki oblik bloka za kontrolu datoteka, posebno kada se koriste prilagođeni datotečni sustavi za uklonjivi hardver, iako struktura podataka koja se koristi nije kompatibilna s ranijim verzijama bez emulacije i općenito je veća i skrivena od većine aplikacije za programiranje visoke razine.
Općenito, kontrolni blok datoteke sadrži informacije koje se mogu promijeniti tijekom upotrebe datoteke od strane operacijskog sustava. Osim imena i lokacije, održavaju se memorijski pokazivači na različite točke unutar same datoteke. To omogućuje sekvencijalno čitanje i pisanje, kao i čitanje i pisanje nasumičnim pristupom kada je upareno s varijablom u FCB-u koja pohranjuje veličinu zapisa slučajnog pristupa. Dozvole za datoteke, kao što su status samo za čitanje ili izvršni status, također se prate. Korištenje FCB-a također pruža mehanizam za sprječavanje dva ili više procesa da rade na istoj datoteci na nepredvidiv način, kao što je pokušaj dodavanja informacija na kraj datoteke dok se ta ista datoteka kopira na drugo mjesto.