Skocz do zawartości

Brak dostępu do scieżki przy deserializacji xml [c#]


Idź do rozwiązania Problem ogarnięty przez Luki91,

Recommended Posts

Witam, mam pewien problem z desakralizacją z plików XML,

tworze sobie zmienną string zawierającego ścieżkę do pliku wybranego przeze mnie;

 

 

string plik2; 

Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog();
dialog.InitialDirectory = "c:\\";
dialog.FileName = "Plik";
dialog.DefaultExt = ".xml";
dialog.Filter = "xml documents|*.xml";
dialog.ShowDialog();
plik2 = System.IO.Path.GetDirectoryName(dialog.FileName);

 

Posiadam klasę z metodą do Deserializacji/Serializacji

 

 

public void Save(string plik2)

         {
             var serializer = new XmlSerializer(typeof(Ksiazkikontener));
             using (var stream = new FileStream(plik2, FileMode.Create))
             {
                 serializer.Serialize(stream, this);
             }
         }

 

i chce ten zdeserializowany plik dodać do tablicy obiektów, 

 

 

var Zdeserializowane = Ksiazkikontener.Load(plik2);

            foreach (var element in Zdeserializowane.Ksiazki)
            {
                Ksiazki.Add(new ksiazki(element));
                Ksiazki.Sort();
 
                lstKsiazki.Items.Refresh();
                int Liczba = Ksiazki.Count + 1;    
                txtId.Text = Liczba.ToString();      // Proponowanie ID przy dodawaniu obiektów
             }

 

Problem polega na tym że nie mogę uzyskać dostępu do tej ścieżki w celu deserializacji

 

http://i.imgur.com/VnUu3Mt.jpg

 

siedzę już nad tym dłuższy czas i nie potrafię znaleźć rozwiązania :D

 

Link to post
Share on other sites
  • Rozwiązanie

Błąd nie ma nic wspólnego z serializacją. Wyjaśnienie błędu masz w okienku wyjątku:

 

 

Odmowa dostępu do ścieżki "C:\Users\...\Wpf2\Data"

Ta ścieżka prowadzi do folderu, nie do pliku, więc jak program ma otworzyć jakiś plik? :P

 

Wszystko przez to, że masz przypisanie:

plik2 = System.IO.Path.GetDirectoryName(dialog.FileName);

Zamiast tego zrób po prostu:

plik2 = dialog.FileName;
  • Popieram 1
Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...