Skip to content

Latest commit

 

History

History
164 lines (119 loc) · 3.61 KB

12-prace-se-soubory.md

File metadata and controls

164 lines (119 loc) · 3.61 KB

Práce se soubory

  • Abychom mohli pracovat se soubory musíme mít připojenou knihovnu using Systém.IO

Zápis do souboru

  • Zápis do souboru provedeme pomocí třídy StreamWriter
  • Při práci se soubory je dobré využít výjimky TRY příkazy pro zápis nebo výpis CATCH výjimka text soubor nenalezen, FINALLY zavření souboru
  • Do souboru můžeme zapisovat text i čísla
StreamWriter zapis_z_klaves = new StreamWriter(@"D:\ŠKOLA\ukol.txt", true)
  • Za @ Cesta k souboru
  • Vlastnost true přidání hodnot k původním

Přímý zápis

zapis.WriteLine("Ostrava");
zapis.WriteLine("Brno");
zapis.WriteLine("Praha");

Zápis zadáním klávesnice

Console.WriteLine("Zapiš jména: ");
string nazvy_k = Console.ReadLine();

zapis_z_klaves.WriteLine(nazvy_k);

Zápis je třeba ukončit a zavřít soubor

zapis_z_klaves.Close();

Čtení ze souboru

  • Čtení souboru tzn. Zobrazení v konzolové aplikaci provedeme pomocí třídy StreamReader
  • Soubor je čten po řádcích, dokud nenarazí na znak konce dokumentu => prázdný řádek
Console.WriteLine("Čti jména ze souboru: ");
StreamWriter cti_jmena = new StreamWriter(@"D:\ŠKOLA\jmena.txt", true)

Čtení souboru, soubor se čte, dokud nenarazí na prázdný řádek

try
{
  while (!cti_jmena.EndOfStream)
  {
    // To co přečteme zapíšeme do konsole
    Console.WriteLine(cti_jmena.ReadLine());
  }
}

Ukončení čtení / zavřít soubor

finally
{
  cti_jmena.Close();
}

CSV soubory

  • Je to soubor do, kterého se záznamy ukládají jako do tabulky
  • Pokud jej otevřeme v poznámkovém bloku položky jsou oddělené ;

Zadání cesty k souboru

Console.WriteLine("Zadej cestu k souboru včetně názvu: ");
string soubor = Console.ReadLine();

using (StreamWriter zapis = new StreamWriter(soubor, true, Encoding.Default))
{
  // Zápis do souboru
  string zavodnik = string.Join(";", jmeno, prijmeni, auto, misto);
  zapis.WriteLine(zavodnik);
}

Čtení souboru pomocí pole

using (StreamReader cteni = new StreamReader(soubor, Encoding.Default))
{
  // Hodnoty musíme oddělit split (";")
  string text = "";
  while (( text = cteni.ReadLine() ) != null )
  {
    string[] hodnoty = text.Split(":");
    foreach (var h in hodnoty)
    {
      Console.Write("{0} , h");
    }
  }
}

Metody třídy FILE

  • Jsou to metody, které dávají informace o souboru a pracují se soubory
  • Soubor můžeme: vytvořit, smazat, kopírovat, zjistit zda existuje…


Zjištění zda soubor existuje

string soubor = @"H:\vyuka\mesta.txt";
Console.WriteLine( File.Exists(soubor) ? "soubor je ve složce" : "soubor neexistuje" );

Smazání souboru pokud existuje

if (File.Exists(@"H:\vyuka\mesta.txt"))
  File.Delete(@"H:\vyuka\mesta.txt");

Vytvoření souboru

File.Create(@"H:\vyuka\mesta.txt");

Kopírování souboru

string soubor1 = @"H:\vyuka\mesta.txt", soubor2 = @"H:\vyuka\zeme.txt";
File.Copy(soubor1, soubor2);

Zjištění data poslední změny

DateTime datum = File.GetLastWriteTime(soubor1);
Console.WriteLine(datum);

Metody třídy Directory

  • Metody pracují se složkami a dávají informace o složkách
  • Složky můžeme vytvořit, smazat, zjistit zda existují...
Console.WriteLine(Directory.Exists(@"H:\vyuka\mesta.txt") ? "složka je na disku" : "složku jsme na disku nenašli");
Directory.CreateDirectory(@"H:\vyuka\mesta.txt");