C#, FileStream, odczytywanie z pliku

0
 using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace Do_testu
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream fs = new FileStream("C:\\Users\\Mikołaj Waśniewski\\Desktop\\Do testu\\plik.txt",FileMode.Open);
            byte[] buffer = new byte[500];
            fs.BeginRead(buffer, 0, 32, new AsyncCallback(CompleteReading),fs);
            string text = Encoding.ASCII.GetString(buffer);
            Console.WriteLine(text);
            Console.ReadKey();
        }

        private static void CompleteReading(IAsyncResult ar)
        {
            Console.WriteLine("Reading complete");
        }
    }
}

Dlaczego w tej linii

FileStream fs = new FileStream("C:\\Users\\Mikołaj Waśniewski\\Desktop\\Do testu",FileMode.Open); 

wywala mi wyjątek: Additional information: Odmowa dostępu do ścieżki „C:\Users\Mikołaj Waśniewski\Desktop\Do testu”.

1

Podaj nazwę pliku wraz z rozszerzeniem, np. "MyFile.txt". Sprawdź rownież czy plik nie jest oznaczony jako tylko do odczytu.

0

Dobra, dzięki. Już poprawiłem. Faktycznie wystarczyło dodać nazwę pliku wraz z rozszerzeniem. Teraz natomiast program nic nie zapisuje do stringa. Wypisuje tylko napis "Reading complete". Co może być kłopotem?

0

Bo prawdopodobnie dekodujesz tablicę bajtów na string, zanim cokolwiek zostanie wczytane do tej tablicy.

0

Hm. To co by tam trzeba było zrobić? Jest jakaś metoda żeby poczekać aż operacja asynchroniczna zostanie zakończona?

0

Jest i nawet z niej korzystasz oO Twoje CompleteReading przecież wykonuje się przecież zaraz PO zakończeniu asynchronicznego odczytu. Nawet nazwałeś tę metodę odpowiednio.

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