Dzień dobry,
Utworzyłem sobie do mojego projektu klasę statyczną zarządzającą plikami. Są w niej min. dwie takie oto funkcje:
public static void zapisz(string nazwaPliku, List<string> dane){
FileStream plik = new FileStream(nazwaPliku, FileMode.Create, FileAccess.Write);
BinaryWriter br = new BinaryWriter(plik);
for (int i = 0; i < dane.Count; i++) {
br.Write(dane[i].Length);
br.Write(dane[i]);
}
br.Close();
plik.Close();
}
public static List<string> odczytaj(string nazwaPliku) {
string sciezka = System.IO.Path.GetFullPath(nazwaPliku);
FileStream plik = new FileStream(sciezka, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(plik);
List<string> wyn = new List<string>();
int poz = 0;
int dl = (int)br.BaseStream.Length;
while (poz < dl-poz) {
poz += br.ReadInt32();
wyn.Add(br.ReadString());
}
br.Close();
plik.Close();
return wyn;
}
Pierwsza zapisuje do pliku binarnego, a druga go odczytuje.
Problem leży przy próbie odczytania pliku.
Visual Studio 2013 wywala mi w programie wyjątek System.IO.FileNotFoundException i twierdzi, że nie może odnaleźć pliku w lokalizacji C:\Windows\System32.
To bardzo dziwna sprawa ponieważ jeżeli spróbujecie sprawdzić co jest w zmiennej 'sciezka' to okaże się, że przechowuje on prawidłową lokalizację.
Chodzi o np. takie wywołanie funkcji:
// Chodzi o ścieżkę względną;
List<string> dane = odczytaj(@"Config\plik.bin");
Mała prośba o pomoc... :)