Fișierul și fluxul I / O se referă la transferul de date de pe sau pe un mediu de stocare. În .NET Framework, spațiile de nume System.IO conțin tipuri care oferă atât operații de citire și scriere sincrone cât și asincrone pentru fluxuri și fișiere de date. În plus, aceste spații de nume conțin tipuri care comprimă și decomprima fișiere, precum și tipuri care asigură comunicarea prin canale și porturi seriale.
Un fișier este o secvență ordonată și numită de octeți care are un magazin persistent. Când lucrați cu fișiere, se utilizează calea către directoare, dispozitive de stocare și numele fișierelor și directoarelor. Spre deosebire de un fișier, un flux este o secvență de octeți care poate fi folosită pentru scrierea sau citirea de pe un dispozitiv de stocare auxiliar, care este unul dintre dispozitivele de stocare (de exemplu, discuri sau memorie). Există mai multe tipuri de dispozitive de stocare, altele decât discurile, și există mai multe tipuri de fluxuri pe lângă fluxurile de fișiere, cum ar fi fluxurile de rețea, fluxurile de memorie și fluxurile de canale.
Tipurile din spațiul de nume System.IO pot fi utilizate pentru a interacționa cu fișierele și directoarele. De exemplu, puteți obține și seta proprietățile fișierelor și directoarelor și, de asemenea, puteți extrage colecții de fișiere și directoare pe baza criteriilor de căutare.
Iată câteva clase comune pentru fișiere și directoare:
Fișierul oferă metode statice pentru crearea, copierea, ștergerea, mutarea și deschiderea fișierelor și, de asemenea, ajută la crearea unui obiect FileStream.
FileInfo oferă metodele instanței pentru crearea, copierea, ștergerea, mutarea și deschiderea fișierelor și, de asemenea, ajută la crearea unui obiect FileStream.
Directorul oferă metode statice pentru crearea, mutarea și enumerarea în directoare și subdirectoare.
DirectoryInfo oferă metode de instanță pentru crearea, mutarea și enumerarea în directoare și subdirectoare.
Cale oferă metode și proprietăți pentru prelucrarea liniilor de directoare într-un mod transversal.
În plus față de utilizarea acestor clase, utilizatorii Visual Basic pot folosi metodele și proprietățile furnizate de clasa Microsoft.VisualBasic.FileIO.FileSystem pentru fișierele I / O.
Fluxurile includ trei operațiuni principale:
Citirea - transferarea informațiilor dintr-un flux într-o structură de date, cum ar fi o serie de octeți.
Înregistrare - transferul datelor într-un flux dintr-o sursă de date.
Căutare - pentru a defini și modifica poziția curentă în flux.
În funcție de sursa sau stocul de date care stau la baza, fluxul poate suporta doar câteva dintre aceste caracteristici. De exemplu, clasa PipeStream nu acceptă căutarea. CanRead Properties. Canflow-ul CanWrite și CanSeek definesc operațiile acceptate de fir.
Următoarele sunt câteva clase de flux utilizate în mod obișnuit:
FileStream - pentru citirea și scrierea unui fișier.
IsolatedStorageFileStream - pentru citirea și scrierea unui fișier în spațiu de stocare izolat.
MemoryStream - pentru citirea și scrierea în memorie ca spațiu de stocare de rezervă.
BufferedStream - pentru a îmbunătăți performanța operațiilor de citire și scriere.
NetworkStream - pentru citirea și scrierea în prize de rețea.
PipeStream - pentru citirea și scrierea țevilor anonime și numite.
CryptoStream - pentru comunicarea fluxurilor de date cu transformări criptografice.
Pentru un exemplu de lucrare asincronă cu fire, consultați Fișierul asincron I / O.
Citirea și scrierea unor cantități mari de date pot constitui o resursă intensivă. Aceste sarcini trebuie executate în mod asincron dacă aplicația trebuie să răspundă în continuare solicitărilor utilizatorilor. În cazul operațiilor I / O sincrone, firul interfeței cu utilizatorul va fi blocat până când operația intensivă a resurselor va fi finalizată. Când dezvoltați aplicații pentru Magazinul Windows 8.x, utilizați operații I / O asincrone pentru a evita impresia că aplicația nu mai funcționează.
Compresia este procesul de reducere a dimensiunii unui fișier salvat. Despachetarea este procesul de extragere a conținutului unui fișier comprimat, care îl aduce într-un format adecvat pentru utilizare. Spațiul de nume System.IO.Compression conține tipuri de compresie și decomprimare a fișierelor și a firelor.
La comprimarea și decompresarea fișierelor și a firelor, sunt adesea folosite următoarele clase:
ZipArchive - pentru a crea și restabili conținutul unei arhive ZIP.
ZipArchiveEntry - pentru a reprezenta un fișier comprimat.
ZipFile - pentru a crea, extrage și deschide un pachet comprimat.
ZipFileExtensions - pentru a crea și a extrage conținut dintr-un pachet comprimat.
DeflateStream - pentru a comprima și a decomprima firele folosind algoritmul Deflate.
GZipStream - pentru a comprima și decomprima fluxurile în format gzip.
Stocarea stocată este un mecanism de stocare a datelor care oferă izolare și securitate prin definirea unor moduri standardizate de corelare a codului cu datele stocate. Magazinul oferă un sistem virtual de fișiere, izolat de utilizator, asamblare și (opțional) un domeniu. Stocarea izolată este utilă în special atunci când o aplicație nu are permisiunea de a accesa fișierele utilizatorilor. Puteți salva setările sau fișierele pentru aplicație într-un mod care este controlat de politica de securitate a computerului.
Stocarea izolată nu este disponibilă pentru Windows 8.x. În schimb, utilizați clasele de date ale aplicațiilor care sunt conținute în spațiul de nume Windows.Storage. Pentru informații suplimentare, consultați Accesarea datelor aplicației în Centrul de dezvoltare pentru Windows.
Următoarele clase sunt adesea utilizate pentru implementarea spațiului de stocare autonom:
IsolatedStorage oferă o clasă de bază pentru implementarea spațiului de stocare izolat.
IsolatedStorageFile oferă o zonă de stocare izolată care conține fișiere și directoare.
IzolatStorageFileStream reprezintă fișierul într-un depozit izolat.
NET pentru Windows 8.x Aplicațiile de magazin conțin mai multe tipuri de citire și scriere în fluxuri, însă acest set nu conține toate tipurile de I / O .NET Framework.
Există câteva diferențe importante în utilizarea operațiilor de I / O pentru aplicații în stilul magazinului Windows 8.x:
Tipuri speciale legate de operațiile cu fișiere, cum ar fi fișierul. Fileinfo. Director și DirectoryInfo. nu sunt incluse în .NET pentru Windows 8.x. În schimb, utilizați tipuri în spațiul de nume al Windows .Storage al runtime-ului Windows, cum ar fi StorageFile și StorageFolder.
Stocarea izolată nu este disponibilă. În schimb, utilizați datele aplicației.
Utilizați metode asincrone, cum ar fi ReadAsync și WriteAsync. Pentru a împiedica blocarea interfeței cu utilizatorul.
Tipurile de compresie bazate pe căile ZipFile și ZipFileExtensions nu sunt disponibile. În schimb, utilizați tipurile din spațiul de nume Windows .Storage.Compression.
Când utilizați clase în spațiul de nume System.IO, trebuie să îndepliniți cerințele de securitate ale sistemului de operare, cum ar fi listele de control al accesului pentru a controla accesul la fișiere și directoare. Această cerință completează restul cerințelor FileIOPermission. Listele de control al accesului pot fi controlate programatic. Pentru mai multe informații, consultați Cum se face. Adăugați sau eliminați intrările din lista de control al accesului.
Implicit, politica de securitate nu permite accesul la fișiere de pe computerul utilizatorului prin Internet sau prin aplicații intranet. Prin urmare, atunci când compuneți coduri, nu folosiți clase de I / O care au nevoie de o cale către un fișier fizic descărcat pe Internet sau intranet. În schimb, utilizați un spațiu de stocare autonom pentru aplicații normale .NET Framework sau pentru aplicații pentru Windows 8.x.
O verificare de securitate se efectuează numai atunci când este creat un fir. Prin urmare, nu este recomandat să deschideți un fir și apoi să-l transmiteți unui cod cu un nivel de încredere mai scăzut sau domenii de aplicare.