Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C# - File.Exists

Alkukoodari [21.09.2020 18:12:10]

#

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);
			}

		}
	}
}

AtskaFin [21.09.2020 19:25:45]

#

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".

Alkukoodari [21.09.2020 20:08:22]

#

No niin... kiitos vaan. Siinä oli se opetus: väärä hakemisto. Oletin tosiaan, että .cs-tiedoston hakemisto on SE hakemisto.

AtskaFin [21.09.2020 20:38:00]

#

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

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta