2011-01-10 12 views
5

im ... programlı bir xml dosyası oluşturmak ve daha sonra bir dosya konumuna kaydetmek için çalışıyor

string xmlPath = AppDomain.CurrentDomain.BaseDirectory.ToString() + "cities.xml"; 

XDocument doc = new XDocument( 
     new XElement("Cities", 
      new XElement("City", 
       new XAttribute("id", gid), 
       new XElement("CityName", cityname)))); 
doc.Save(xmlPath); 
sorun onun belirtilen konuma kaydedilmediğini belirten olmasıdır

...

+0

gerçek yolu, çalıştığında o verilir ne olduğunu kontrol etmek için hata ayıklama denediniz kayıt etmek? Ayrıca, herhangi bir hata var mı, yoksa dosyayı beklediğiniz yer değil mi? – Adkins

+0

Hata veya çıktı var mı? XmlPath'daki yolun geçerli olup olmadığını kontrol ettiniz mi? Dosyayı aramadan önce uygulamayı kapatıp/durdurdunuz mu? –

+0

hangi değere sahip olduğunu görmek için kaydetmeden önce xmlPath değişkenini kontrol edebilirsiniz, varsayılan * AppDomain.CurrentDomain.BaseDirectory.ToString() * = uygulamanın hata ayıklama klasörü –

cevap

3

Kod iyi görünüyor ve yerel olarak test ettiğimde işe yaradı. Geçerli kullanıcının yazma izni olan bir dizine xmlPath işaret ettiğinden emin olun. Bir yan not olarak Path.Combine kullanmak daha iyi olurdu.

string xmlPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, 
             "cities.xml"); 

: Onlardan birden olmadığından emin

+0

yup kodu çalışıyor ... tnx herkes cevaplamak için ... – Rafay

8

deneyin olun) emin a) dizini ve dosya adı arasında gerekli ters eğik çizgi var olmak için System.IO.Path.Combine yöntemini kullanmak ve b Ayrıca: Belki de kullanıcı hesabınızın bu dizine yazma izni yoktur. İzole Depolama veya başka bir dizin gibi bir kullanıcı kullanmayı deneyin: % 100 emin kullanıcının yazmasına izin verilir.

+1

100k için tebrikler! ;-) –

1

Yapabileceğiniz en iyi şey, bu programı hata ayıklayıcısında çalıştırmak ve xmlpath değişkeninde hangi konumun verildiğini kontrol etmek ve ayrıca normal bir yerel kullanıcının bu dizine yazma izni olup olmadığını kontrol etmektir. Klasörle veya verilen yolla ilgili çok sayıda sorun olabilir. Başka bilgi olmadan, daha açıklayıcı bir cevap vermek zordur.

2

Eğer ben bin dizininde kaydediyor düşünüyorum bir windows uygulaması yolu bin dizinine işaret edilecektir kullanıyorsanız

İlgili konular