Фајлови и директоријуми
Пре него што почнеш са израдом програма који приступају фајловима, подсетићеш се првих часова информатике и лекције о организацији података на дисковима. У српском језику користи се пуно синонима: фајл или датотека, директоријум или фолдер, каталог, фасцикла, именик, омотница и сл. У овој и наредним лекцијама користиће се термини фајл (енгл. File) и директоријум (енгл. Directory). Фајл систем дефинише како су подаци организовани на уређајима за складиштење (HDD, SSD, Flash, CD/DVD итд.). Он обезбеђује податке за идентификацију фајла (име са екстензијом), податке о томе где се налазe почетак и крај фајла, метаподатке о фајлу (контролне податке за проверу исправности фајла, атрибуте фајла, податке о правима приступа итд). Поред тога, фајл систем треба да обезбеди и начин за груписање фајлова у организационе јединице, односно у директоријуме.
У Windows окружењу уређаји за складиштење података (односно партиције на уређајима за складиштење података) означавају се словима енглеског алфабета иза којих следи двотачка. Обично су A: и B: резервисане ознаке за дискове у флопи-диск уређајима који се више и не користе. C: је обично први диск (тј. прва означена партиција на првом диску) на којем је инсталиран оперативни систем, па након тога D: може бити други диск (тј. друга означена партиција) или диск у неком оптичком уређају (CD/DVD) итд. Када прикључимо нови диск, нпр. USB флеш-диск, он ће бити означен следећим слободним словом, нпр. словом Е:.
У Windows оперативним системима се и даље могу користити разни фајл системи: NTFS, exFAT и FAT32. NTFS је подразумевани фајл систем за савремене рачунарске системе са Windows оперативним системима. exFAT и FAT32 су застарели и прилично ограничени фајл системи – недостају им безбедносне одлике NTFS система, а имају ограничења у погледу максималне величине партиција и фајлова. Због тога више није могуће инсталирати оперативни систем Windows на диск са exFAT или FAT32 фајл системом.
Ако приступиш некој означеној партицији на неком диску, каже се да си приступио кореном директоријуму тог диска, нпр. C:\ је корени директоријум C: диска. У њему се могу налазити и фајлови и директоријуми. Ако сачуваш фајл MojFajl.txt у корени директоријум C: диска, онда се тај фајл налази на локацији C:\MojFajl.txt. Ако направиш директоријум MojiPodaci у кореном директоријуму C: диска, па у њега сачуваш фајл MojFajl.txt, онда се тај фајл налази на локацији C:\MojiPodaci\MojFajl.txt.
Приликом писања програма у програмском језику C# локација фајла може бити одређена на два начина: навођењем апсолутне путање или навођењем релативне путање. Апсолутна путања садржи комплетну путању до фајла (од кореног директоријума све до директоријума у којем се налази фајл) и име фајла. Релативна путања садржи путању до фајла у односу на локацију извршног фајла апликације (места где се апликација извршава) и име фајла. На пример, ако је локација извршног фајла апликације C:\Projekat1\MojaAplikacija.exe, а наведена путања до фајла којем ће апликација приступати C:\Projekat1\Tekstovi\MojFajl.txt, каже се да је наведена апсолутна путања. Ако је наведена путања до фајла Tekstovi\MojFajl.txt, каже се да је наведена релативна путања. Релативне путање доприносе мобилности апликације, јер се апликација са подацима које користи може лако преместити у други директоријум, на други диск или други рачунар.
Како програмски језик C# нуди огромну библиотеку готових класа, сваки задатак у којем је неопходно приступати фајловима и директоријумима можеш решити на више начина. Зато, не треба да те буни ако је неко на интернету исти проблем решио потпуно другачије него ти. Заједничко за све класе које ћеш користити за рад са фајловима и директоријумима је да се налазе у именском простору System.IO. За рад са текстуалним фајловима користићеш два приступа:
- упис у фајл, читање из фајла и рад са директоријумима помоћу класа
FileиDirectory. - упис у фајл и читање из фајла помоћу класа
StreamWriterиStreamReader.
За рад са бинарним фајловима користићеш класе BinaryWriter и BinaryReader.