Obsługa braku pliku xml

0

Używam kodu:

XmlDocument xdoc = new XmlDocument();
xdoc.Load("plik.xml");

Jak dodać do tego obsługę braku pliku? (chciałbym wyświetlić błąd i utworzyć plik).

1

File.Exists("plik.xml")

0

Otwieram też pliki z sieci:

xdoc.Load("http://abc.pl/xml.php");

A visual studio przy File.Exists("http://abc.pl/xml.php") informuje mnie o błędzie. Jak wtedy obsłużyć błąd/zapobiec mu?

1

Musisz wysłać żądanie o ten plik i dowiedzieć się co serwer odpowie (np. 404, nie istnieje taki zasób). Klasa WebRequest na przykład się tutaj nada. Jeśli zasób istnieje to od razu ten plik pobierzesz, więc 2 pieczenie przy jednym ogniu.

0

A jak użyć WebRequest? Znalazłem w msdn kod:

using System;
using System.IO;
using System.Net;
using System.Text;

namespace Examples.System.Net
{
    public class WebRequestPostExample
    {
        public static void Main ()
        {
            // Create a request using a URL that can receive a post. 
            WebRequest request = WebRequest.Create ("http://www.contoso.com/PostAccepter.aspx ");

Ale u mnie vs nie znajduje klasy i jest błąd przy deklaracji obiektu.

1

A masz na pewno using System.Net? Ta klasa była nawet w .net 1.1 (choć nie tak funkcjonalna wtedy jak teraz o ile pamiętam).

0

Racja, nie miałem tego. A jak używać tej klasy (sprawdzić, czy można normalnie otworzyć plik xml), bo pierwszy raz z niej korzystam?

0

Ta klasa wysyła żądanie http, więc zasada działania jest taka sama jak protokołu http. Przygotowujesz żądanie (typ GET/POST), podajesz adres zasobu, następnie wysyłasz żądanie (GetResponse) i czekasz na odpowiedz. Przykłady są na msdn. Szczególy odpowiedzi (kod odpowiedzi, np. 404 i jej treść) są właściwościami obiektu uzyskanego z GetResponse. Możesz chcieć zrzutować to na HttpResponse, żeby dostać szczegółowe informacje na temat odpowiedzi typu HTTP.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.