Tiedostojärjestelmä

Asemien tiedot

Asemien tietojen hakemiseen on luokka DriveInfo.

Haetaan asemat ja tulostetaan vapaana olevan tilan prosenttiosuus

foreach (DriveInfo drive in DriveInfo.GetDrives())
{
	// asema on valmiina (esim. levykeasema ei saata olla)
	if (drive.IsReady)
	{
		// lasketaan tyhjän tilan osuus
		double free = (double)drive.AvailableFreeSpace / (double)drive.TotalSize * 100;
		Console.WriteLine("{0}\t{1:0.00}% vapaana", drive.Name, free);
	}
}

DriveInfo sisältää seuraavat ominaisuudet

Nimi Sisältö
AvailableFreeSpace Käytettävissä oleva tila
DriveFormat Formaatti (esim. NTFS tai FAT32)
DriveType Tyyppi (kiintolevy, CD-ROM, verkkolevy jne.)
IsReady Onko valmiina (levyke sisällä tms.)
Name Aseman tunnus (esim C:\)
RootDirectory Juurihakemisto (esim C:\)
TotalFreeSpace Vapaana oleva tila yhteensä
TotalSize Aseman koko
VolumeLabel Aseman nimi

Hakemistojen ja tiedostojen tiedot

Directory-luokka sisältää staattisia metodeja hakemistojen käsittelyyn ja DirectoryInfo-luokka tarjoaa yhden hakemiston tiedot. Nämä menevät osittain päällekkäin. Molemmissa on esim. metodi GetFiles, joka palauttaa hakemistossa olevat tiedostot (erona se, että Directoryn metodi palauttaa string[]- ja DirectoryInfon metodi FileInfo[]-tyyppisen tuloksen).

Listataan hakemistossa olevat mp3-tiedostot kummallakin tavalla

string hakemisto = @"D:\Musiikki";

// käyttäen Directory-luokan staattista metodia
foreach(string file in Directory.GetFiles(hakemisto,"*.mp3",SearchOption.AllDirectories))
{
	FileInfo mp3 = new FileInfo(file);
	Console.WriteLine(file.Name);
}

// käyttäen DirectoryInfon metodia
DirectoryInfo dir = new DirectoryInfo(hakemisto);
foreach (FileInfo mp3 in dir.GetFiles("*.mp3", SearchOption.AllDirectories))
{
	Console.WriteLine(mp3.Name);
}

Hakemistojen käsittelyyn Directory- ja DirectoryInfo-luokista löytyvät metodit ja ominaisuudet

Tehtävä/tieto Directory DirectoryInfo
Nimi Name
FullName
Onko hakemisto olemassa Exists() Exists
Luo hakemisto CreateDirectory() Create()
CreateSubdirectory()
Listaa alihakemistot EnumerateDirectories()
GetDirectories()
EnumerateDirectories()
GetDirectories()
Listaa tiedostot EnumerateFiles()
GetFiles()
EnumerateFiles()
GetFiles()
Ylähakemisto GetParent() Parent
Siirrä hakemisto Move() MoveTo()
Poista hakemisto Delete() Delete()
Hakemiston attribuutit Attributes
Luontiaika GetCreationTime()
SetCreationTime()
GetCreationTimeUtc()
SetCreationTimeUtc()
CreationTime
CreationTimeUtc
Muokkausaika GetLastWriteTime()
SetLastWriteTime()
GetLastWriteTimeUtc()
SetLastWriteTimeUtc()
LastWriteTime
LastWriteTimeUtc
Milloin viimeksi käytetty GetLastAccessTime()
SetLastAccessTime()
GetLastAccessTimeUtc()
SetLastAccessTimeUtc()
LastAccessTime
LastAccessTimeUtc

Tiedostojen käsittelyyn File- ja FileInfo-luokista löytyvät metodit ja ominaisuudet

Tehtävä/tieto File FileInfo
Nimi Name
FullName
Koko Length
Onko tiedosto olemassa Exists() Exists
Luo tiedosto Create() Create()
Kopioi tiedosto Copy() CopyTo()
Hakemisto Directory
DirectoryName
Siirrä tiedosto Move() MoveTo()
Poista tiedosto Delete() Delete()
Korvaa tiedosto Replace() Replace()
Attribuutit GetAttributes() Attributes
Luontiaika GetCreationTime()
SetCreationTime()
GetCreationTimeUtc()
SetCreationTimeUtc()
CreationTime
CreationTimeUtc
Muokkausaika GetLastWriteTime()
SetLastWriteTime()
GetLastWriteTimeUtc()
SetLastWriteTimeUtc()
LastWriteTime
LastWriteTimeUtc
Milloin viimeksi käytetty GetLastAccessTime()
SetLastAccessTime()
GetLastAccessTimeUtc()
SetLastAccessTimeUtc()
LastAccessTime
LastAccessTimeUtc

Tiedoston lukeminen ja kirjoittaminen

File-luokasta löytyy staattisia metodeita, joilla voi lukea ja kirjoittaa tiedostosta/tiedostoon.

Esim. luetaan tiedostosta kaikki rivit, muunnetaan kirjaimet isoiksi ja tallennetaan

string tiedosto = @"C:\tiedosto.txt";
// luetaan kaikki rivit
string[] rivit = File.ReadAllLines(tiedosto);
// muunnetaan isoiksi kirjaimiksi
for (int i = 0; i < rivit.Length; i++)
{
	rivit[i] = rivit[i].ToUpper();
}
// kirjoitetaan kaikki rivit
File.WriteAllLines(tiedosto, rivit);

Metodit tiedostoon kirjoittamiseen

Nimi Tehtävä
AppendAllLines() Lisää rivit tiedostoon olemassa olevan sisällön jatkoksi
AppendAllText() Lisää tekstin tiedostoon olemassa olevan sisällön jatkoksi
WriteAllBytes() Kirjoittaa tavut tiedostoon (korvaa vanhan sisällön)
WriteAllLines() Kirjoittaa rivit tiedostoon (korvaa vanhan sisällön)
WriteAllText() Kirjoittaa tekstin tiedostoon (korvaa vanhan sisällön)

Metodit tiedoston lukemiseen

Nimi Tehtävä
ReadAllBytes() Lukee kaikki tavut
ReadAllLines() Lukee kaikki rivit
ReadAllText() Lukee koko tekstin
ReadLines() Lukee rivit

Kirjoittamiseen ja lukemiseen voi käyttää myös tietovirtoja (stream).

u7x9cc0

Navigointi

Social Media