Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 2. diel - Úvod do práce so súbormi

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na kidal5
Michal Štěpánek:23.8.2014 14:33

Path.Combine() se používá tam, kde se chceš dostat do určité složky (Dokumenty, AppData, apod) protože ti jednoduše pomůže s cestou a nemusíš jí psát "natvrdo"...

Odpovedať
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na kidal5
Jan Vargovský:23.8.2014 14:48

Spojí ti to cesty do jedné, ale ono je to interně trošku inteligentnější než klasické spojení stringů a přidání lomítek mezi ně.

Ano, dá se to několika způsoby:

  1. dáš kurzor na třídu (nebo metodu, vlastnost, ...), kterou chceš prozkoumat a zmáčkneš F12 - tady ti to ukáže jen signatury metod + summary komentáře (ty co ti ukazuje VS)
  2. najdeš si knihovnu na disku a projedeš si jí dotPeekem od JetBrains - dekompiluješ jejich knihovny - vidíš kód jak vypadá po kompilaci (bez komentářů)
  3. Někde online je jsou vyvěšené .NET zdrojáky i s komentáři, nakonec jsem ti to i našel - http://referencesource.microsoft.com/#…
Avatar
kidal5
Člen
Avatar
Avatar
František Pastorek:19.10.2014 15:38

Ako to ze mi tento kod nefunguje. Ak zadam nazov subora tak mi ho normalne vytvori v pripade ze neexistuje. Ak existuje tak ho samozrejme nevytvori ale ani neprebehne catch. Jednoducho to catch vobec neprebehne.

string path = @"\Files\";
path = path + textBox1.Text + ".txt";

if (!Directory.Exists(@"\Files"))
{
     Directory.CreateDirectory(@"\Files");
}

try
{
     if (!File.Exists(path))
     {
          File.Create(path);
          textBox2.Text = textBox2.Text + "Subor " + path + " bol uspesne vytvoreny." + Environment.NewLine;
          textBox1.Text = "";
     }
}
catch
{
     textBox2.Text = textBox2.Text + "Chyba pri vytvoreni subora. Subor " + path + " uz existuje." + Environment.NewLine;
}
Editované
Avatar
Lukáš Křehula:19.10.2014 16:50

//Musíš oddělat tu podmínku v Try
Špatně jsem odpověděl, v try máš celou podmínku, do Try dej jenom File.Create(path);

     if (!File.Exists(path))
{
    try
    {
        File.Create(path);
        textBox2.Text = textBox2.Text + "Subor " + path + " bol uspesne vytvoreny." + Environment.NewLine;
        textBox1.Text = "";
    }
    catch
    {
        textBox2.Text = textBox2.Text + "Chyba pri vytvoreni subora. Subor " + path + " uz existuje." + Environment.NewLine;
    }
}
Editované
Avatar
David.Landa
Člen
Avatar
David.Landa:23.3.2015 15:57

Není ten if nadbytečný?

if (!Directory.Exists(cesta))
    Directory.CreateDirectory(cesta);

Dokumentace říka, pokud adresář existuje, pak se ho nepokusí vytvořit znovu.

Editované
Avatar
pracansky
Člen
Avatar
pracansky:12.4.2015 17:07

%appdata% je cesta do profilu jednoho uživatele ale co když potřebuji uložit nastavení které je společné pro všechny?

Jsou tam je složky jako "All Users","Default User","Default"...
Nerudovská otázka kam s ním?

Avatar
blazoid
Člen
Avatar
blazoid:30.10.2015 20:26

Ahoj, mám potíže se třídou "Directory" - když začnu psát Directory, našeptávač mně to nabídne, ovšem jakmile začnu psát tečku a Exists, začne to řvát, že typ "Exists" není ve jmenném prostoru Directory - absolutně se mi tedy nedaří vytvořit:

if (!Directory.E­xists(cesta))
Directory.Cre­ateDirectory(ces­ta);

Avatar
Richard H.
Tvůrce
Avatar
Odpovedá na blazoid
Richard H.:30.10.2015 21:53

Zkus ignorovat ide a pokus se to zkompilovat pak uvidíš jesli je chyba u tebe nebo u ide.

Odpovedať
Malý užitečný manuál je vždy lepší než bichle k ničemu.
Avatar
blazoid
Člen
Avatar
Odpovedá na Richard H.
blazoid:31.10.2015 17:08

Bohužel to při kompilaci vypíše následující:

Error 1 'bool' does not contain a definition for 'Exists' and no extension method 'Exists' accepting a first argument of type 'bool' could be found (are you missing a using directive or an assembly reference?) C:\BLAZEK\C#\Di­rectory\Direc­tory\Directory\Pro­gram.cs 23 32 Directory

Error 2 'bool' does not contain a definition for 'CreateDirectory' and no extension method 'CreateDirectory' accepting a first argument of type 'bool' could be found (are you missing a using directive or an assembly reference?) C:\BLAZEK\C#\Di­rectory\Direc­tory\Directory\Pro­gram.cs 24 31 Directory

  • následně mně to nabídne, zda chci spustit poslední verzi (tedy tu co se naposledy podařilo zkompilovat)...
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 32.