Hakemisto, myös nimillä kansio tai laatikosto (engl. drawer)[1], on tiedostojen järjestämiseen käytetty rakenne tiedostojärjestelmässä. Teknisestä näkökulmasta hakemisto on erityinen tiedosto, jossa on luettelo siihen liitetyistä tiedostoista.[2]
Hakemistot ovat niin sanotun toisen sukupolven tiedostojärjestelmän (hierarkkinen tiedostojärjestelmä) ominaisuus ja keskeisessä roolissa.[3][4] Hierarkkiset tiedostojärjestelmät ovat olennaisia moderneissa käyttöjärjestelmissä.[4] Kun Unixissa oli hierarkkinen tiedostojärjestelmä se ei vielä ollut itsestäänselvyys kaikkialla: esimerkiksi CP/M:ssä tiedostojärjestelmässä ei ollut alihakemistoja ja joissakin muissa järjestelmissä syvyys oli rajattu vain muutamaan tasoon kun taas Unix salli minkä vain syvyyden.[5]
Käyttäjälle hakemisto ilmenee astiana tai säiliönä, joka voi sisältää tiedostoja ja muita hakemistoja.[4] Kansio on Macintoshissa ja Windowsissa käytetty synonyymi hakemistolle.[4]
Hakemistopolkuja käytetään tunnistamaan kappale tiedostojärjestelmässä. Polut sisältävät erotinmerkkejä sekä komponentteja, jotka ovat muita kuin erotinmerkkejä. Hakemistopolut voivat olla "absoluuttisia" (alkaen juurihakemistosta) tai "suhteellisia", jotka alkavat sen hetkisestä hakemistosta.[6]
Hakemisto voi sisältää tiedostojen lisäksi muita hakemistoja eli alihakemistoja. Sisäkkäisistä hakemistoista muodostuu tiedostojärjestelmän hakemistorakenne eli hakemistopuu. Unix-tyyppiset käyttöjärjestelmät, AmigaOS ja useat muut käyttävät hakemistotasojen erottimena vinoviivaa (/
). CP/M, MS-DOS ja Windows käyttävät kenoviivaa (\
). Vastaavasti URL-osoitteissa verkkotunnuksen jälkeiset vinoviivat tyypillisesti jäsentävät WWW-palvelimen hakemistopolkua. OpenVMS käyttää hakemistoerottimena pistettä (.
) ja vanha Mac OS (ennen OS X:ää) kaksoispistettä (:
).
Hakemistopolun ja tiedostonimien yhteispituus voi rajoittaa maksimipituutta ja se voi riippua käytetystä merkistöstä. Mac OS X, Solaris ja AIX käyttöjärjestelmissä suurin sallittu yhteispituus on 1024 merkkiä.[7] Linuxissa tiedoston nimelle on 255 merkin maksimi ja yhteispituus voi olla 4096 tavua.[7] Windowsin ohjelmointirajapinnassa suurin sallittu tiedoston polun pituus on 260 merkkiä ("D:\<korkeintaan 256 merkkiä><NUL>"), josta enintään 255 on tiedostonimelle.[8][7] Unicoden kanssa merkkien maksimimäärä voi vaihdella kun yksi merkki voi käyttää useampia tavuja.[7] OpenVMS:ssä ODS-5 tiedostojärjestelmällä nimen pituus voi olla 236 8-bittistä tai 118 16-bittistä merkkiä.[9]
Vanhanaikaisissa tai yksinkertaisissa tietokonejärjestelmissä (sulautetut järjestelmät) ei välttämättä ole hakemistoja lainkaan, vaan kaikki tiedostot tallentuvat suoraan juurihakemistoon (ensimmäisen sukupolven tiedostojärjestelmät).[3]