Otwieranie plików txt z internetu

0
using System;
using System.IO;

class Test
{

    public static void Main()
    {
        string path = @"c:\test.txt";

        try
        {
            using (StreamReader sr = new StreamReader(path))
            {
                Console.WriteLine(sr.ReadToEnd());
            }
        }
        catch
        {
        }
    }
}

Zrobiłem coś takiego, otwiera pliki z dysku lecz gdy chce otworzyć plik z intermetu nie działa :( owy plik ma atrybuty 777

0

Ale jak to zrobiłeś. Po prostu podałeś:
path = "http://server.pl/plik.txt";
??? Bo to oczywiste, że nie zadziała.

Pobieranie plików z internetu wiąże się z połączeniem poprzez gniazdka protokołem TCP/IP.

0

tak ;P myślałem że to nic nie będzie potrzebne ,więc mógłbyś mi napisać jak to zrobić? z góry thx

0

To nie PHP, tu nie można adresu URL podać ;)

A jak pobrać plik z Internetu... ech, dobrze, że mam backup, bo z dysku skasowałem...

Użyj System.Net.WebClient i metody DownloadFile.

0
System.Net.WebClient Client = new WebClient();
            Stream strm = Client.OpenRead("http://serwer.pl/test.txt");
            StreamReader sr = new StreamReader(strm);
            string tekst;
            do
            {
                tekst = sr.ReadToEnd();
                label4.Text = (tekst);
            }
            while (tekst != null);
            strm.Close();

ok, lecz gdy próbóje włączyć program on po prostu się zawiesza ;/ (zrobiłem też aby po kliknięciu na przycisk się zrobiło i tak samo wtedy label się czyści i program zawiesza myślałem też o czymś takim :

            WebClient Client = new WebClient();
            Client.DownloadFile("http://www.serwer.pl/test.txt", " test.txt");

            try
            {
                using (StreamReader sr = new StreamReader("test.txt"))
                {
                    label4.Text = sr.ReadToEnd();
                }
            }
            catch
            {
            }

tylko to troche takie pokrętne, ale działa ;D

0

Zawiesza Ci się, bo funkcja StreamReader.ReadToEnd(), kiedy dojdzie do końca strumienia, zwraca pusty string (""), a nie wartość null. Zmień sobie warunek w pętli do-while lub użyj funkcji StreamReader.ReadLine().
Z resztą zupełnie nie rozumiem czemu wywołujesz metodę ReadToEnd() w pętli.
W przypadku podobnych problemów polecam użycie debugera. Wtedy od razu widać na czym program się zawiesza i dlaczego.

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