Tehtävänä on vääntää ohjelma, joka kysyy käyttäjältä tiedostonimeä. Jos tiedosto löytyy, niin ohjelma tulostaa sisällön ruudulle. Jos ei löydy, niin systeemi ilmoittaa ettei löydy. Jos rivin jättää tyhjäksi niin ilmoittaa ettei mitään kirjoitettu. Alla koodi, ei löydä tiedostoa vaikka sen kyllä pitäisi olemassa olla.
using System; using System.IO; namespace bla { class blabla { public static void Main() { string filename, content; filename = Console.ReadLine(); if (filename.Length == 0) { Console.WriteLine("No filename provided!"); } else if (File.Exists(filename) == false) { Console.WriteLine("File does not exist!"); } else { content = File.ReadAllText(filename); Console.WriteLine(content); } } } }
Koodi toimii kyllä ihan oikein.
Ovatko tiedostot, joita koitat avata samassa hakemistossa exe:n kanssa (Ei sama hakemisto, missä .cs tiedosto, jos koodaat visual studiolla*).
Toinen ongelma voi olla se, että et ole syöttänyt tiedostopäätettä. Esimerkiksi, jos sinulla on tiedosto "data.txt", niin ohjelma ei löydä sitä jos kirjoitat "data" vaan sinun pitää kirjoittaa myös pääte, eli "data.txt".
No niin... kiitos vaan. Siinä oli se opetus: väärä hakemisto. Oletin tosiaan, että .cs-tiedoston hakemisto on SE hakemisto.
Pystyt kyllä avata tiedostoja myös eri kansioista.
./ tarkoittaa, että haetaan nykyisestä kansiosta.
../ tarkoittaa, että peruutetaan edelliseen hakemistoon ja haetaan sieltä.
testi.txt tiedoston avaaminen ohjelmassa: ./data/testi.txt 📁Kansio - app.exe - 📁data - testi.txt
Testi.txt tiedoston avaaminen ohjelmassa: ../testi.txt 📁Kansio - testi.txt - 📁Toinen kansio - app.exe
Voit peruuttaa myös useita hakemistoja taaksepäin: ../../../testi.txt
Aihe on jo aika vanha, joten et voi enää vastata siihen.