Diskuze: Error při čtení souboru

C# .NET .NET (C# a Visual Basic) Error při čtení souboru American English version English version

Avatar
Jakub Lásko[Saarix]:

Zdravím dělám zabezpečení své WPF aplikace, ale při prostém pokusu o čtení txt souboru dostávám zvláštní error, ale když ten kus kódu kde chci číst soubor odstraním, tak aplikace normálně funguje.

Tady je ten kus kódu co hází error:

if (File.Exists(path + "/Security.txt"))
            {
                Stream stream = File.OpenWrite(path + "/Security.txt");
                using (StreamReader reader = new StreamReader(stream))
                {
                    string line = null;
                    while (!reader.EndOfStream)
                    {
                        line = reader.ReadLine();

                        if (!string.IsNullOrEmpty(line))
                        {
                            string encryptedMac = security.DecryptString(line);
                            if (MacAddress.GetMacAddress() == encryptedMac)
                                break;
                            else
                                Close();
                        }
                    }
                }
            }

Konkrétně ten error se vyhodí přesně na řádku kde chci v usingu udělat StreamReader.

Nějaké nápady? :)

Odpovědět 7.7.2014 7:31
Časem je vše možné.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jakub Lásko[Saarix]
KlimiCZ:

Source not avbile znamena ze tam asi nemas ten zdroj.

Nahoru Odpovědět 7.7.2014 7:48
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Odpovídá na KlimiCZ
Jakub Lásko[Saarix]:

Jasně, ale všimni si že stream z toho souboru vytvářím o řádek výše a to projde normálně bez erroru, takže ten soubor existuje i fyzicky ho tu mám.

Což je jediný případný source.

Editováno 7.7.2014 8:04
Nahoru Odpovědět 7.7.2014 8:03
Časem je vše možné.
Avatar
Odpovídá na Jakub Lásko[Saarix]
Michal Haňáček:

Tak, tak. Jak říká KlimiCZ, aplikace pravděpodobně nemůže najít zdroj. Zkoušel sis to krokovat? Je cesta ke zdroji(tomu texťáku) správně?

Pro test by mělo stačit něco jako

String PathToTXT=path+"/Security.txt"

.

Nahoru Odpovědět  +1 7.7.2014 8:09
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
coells
Redaktor
Avatar
Odpovídá na Jakub Lásko[Saarix]
coells:

Mícháš dvě věci dohromady.

Když si přečteš tu výjimku, tak říká, že k chybě došlo během volání konstruktoru MainWindow. Protože se nepovedla inicializace XAML, hlásí studio "Source not available".

 
Nahoru Odpovědět  +3 7.7.2014 9:27
Avatar
Odpovídá na coells
Jakub Lásko[Saarix]:

Jasně chápu tě, ale když odmažu ten kus kódu kterým čtu soubor, tak to normálně funguje a problém v konstruktoru MainWindow už není, takže problém je u toho čtení.

A cesta je správná a i stream je správně naplněn. Program prostě spadne při volání toho usingu.

Nahoru Odpovědět 7.7.2014 10:21
Časem je vše možné.
Avatar
Petr Čech (czubehead):

Jenom taková poznámka: na ten soubor bych si udělal konstantu, snadno se ti potom stane, že v názvu souboru uděláš překlep a celé se to rozbije.

Jo a proč neuděláš ten ten stramreader takhle

using(StremReader reader = new StreamReader(Path.Combine(path,"Security.txt")){
}
Nahoru Odpovědět 7.7.2014 10:30
Why so serious? -Joker
Avatar
Jakub Lásko[Saarix]:

Vyřešeno, pokud si všimnete, tak při vytváření Streamu jsem dal File.OpenWrite, prřito čtu, takže jsem přepsal na OpenRead a jede. :-)

Moc se omlouvám za stupidní chybu, ale opravdu jsem to přehlédl.

Nahoru Odpovědět  +1 7.7.2014 10:31
Časem je vše možné.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.