2011-05-12 31 views
5

C# kullanıyorum. Projemde xml dosyamda "file.xml" yazdığım bir xml dosyası var. Dosyayı projemde kullanmak istiyorum.göreli yol kullanarak C#

xmlDoc.Load(@"..\xml\file.xml"); 

ancak dosyayı almıyor: Bunun için ben yolunu veriyorum, mevcut proje kendisi o dosyayı almak istiyorum. Bazı "C:" yolunu gösteriyor .. Bu dosyayı projeden nasıl geri alabilirim.

cevap

6

Dosyayı EXE dosyanızla klasöre yerleştirmek için Çözüm Gezgini'ndeki Copy to Output Directory özelliğini ayarlamalısınız.

Daha sonra bu EXE dosyasının gerçek konumunu kullanır ve ne olursa olsun geçerli dizinin çalışacak

xmlDoc.Load(Path.Combine(typeof(MyClass).Assembly, "file.xml")); 

yazabilir.

DÜZENLEME: ASP.Net, sen (genel erişime kapalı olan) App_Data klasörde dosya koymalıyız, o zaman yazma

xmlDoc.Load(Server.MapPath("~/App_Data/file.xml")); 
+0

benim durumumda, bu yaklaşım çalışmaz SQL veritabanı projesidir. –

2

Sen Copy to Output Directory "yeni eğer kopya" olarak ayarlanmış olmalıdır ve daha sonra da kullanabilirsiniz: Visual Studio Proje dosyasını içeren çünkü

Path.Combine(Application.StartupPath, "file.xml"); 
+0

çalışmıyor ... "dosya bulunamadı" istisnası veriyor ve bazı "C: programfiles ....." yolunu gösteriyor. – mucchar

+0

Bu bir pencere uygulaması veya ASP.NET uygulaması mı? – jaywayco

+0

asp uygulaması – mucchar

0
Path.Combine(typeof(MyClass).Assembly.Location.ToString(), "file.xml") 
+1

Çalışmıyor, çünkü 'Location.ToString()' MyClass.exe içerir –

İlgili konular