Próba odczytu z pliki i jeżeli nie istnieje - utworzyć go

0

Witam,

Kod co robi każdy widzi:

  
            try
            {
                TextReader loadFile = new StreamReader("date.txt");
                label1.Text = loadFile.ReadLine();
                loadFile.Close();
            }

            catch (IOException ex)
            {
                MessageBox.Show(ex.ToString());
            }

            string date = label1.Text;

Czy ktoś mógłby podpowiedzieć jak zrobić, by program automatycznie tworzył plik jeżeli go nie znajdzie, a nie wywalał błąd?

0

Dodaj po prostu

if (!File.Exists("date.txt")) // jeśli plik nie istnieje
{
    using (FileStream newFile = File.Create("date.txt")) 
    {
        // robisz co tam chcesz z tym nowym plikiem przy tworzeniu
    }	
}

Na początku.

2

Albo zamiast coś bez sensu dodawać napisz po ludzku:

TextReader loadFile = new StreamReader(File.Open("date.txt", FileMode.Create));
0

Dziękuję somekind.

Szukałem w specyfikacji (http://msdn.microsoft.com/pl-pl/library/system.io.streamreader.aspx) czegoś w rodzaju FileMode, ale nie znalazłem. Swoją drogą nie ma tu też Open(); Więc to chyba ja szukam w złym miejscu. Czy ktoś mógłby pokierować mnie, jak skutecznie korzystać ze specyfikacji?

Prosiłbym jeszcze odpowiedź na pytanie: Jak to jest, że przy konstruowaniu zmiennej loadFile z klasy TextReader potrzebujemy wywołać klasę SteamReader?

2

@zjadarka, Open to metoda klasy File: http://msdn.microsoft.com/library/b9skfh7s.aspx
Zamiast tego mógłbyś też użyć też np. new FileStream(ścieżka, FileMode.Open)

A co do drugiego pytania: TextReader to po prostu abstrakcyjna klasa, StreamReader to jedna z jej konkretnych implementacji: http://msdn.microsoft.com/en-us/library/system.io.textreader.aspx

0

Dziękuję.

Jeszcze tego wszystkiego nie łapię do końca, aczkolwiek mam nadzieję, że wszystko przyjdzie z czasem.

2

Istnieje funkcja, która tworzy plik jeśli go nie ma, nadpisuje jeśli jest:

TextWriter loadFile = File.CreateText("date.txt");

Polecam przejrzenie klasy File, jest tam sporo ciekawych funkcji upraszczających obsługę plików.

1 użytkowników online, w tym zalogowanych: 0, gości: 1