我正在读取一个xml文件,并希望根据应用程序的位置从相对目录创建它,类似于使用Server.MapPath的ASP.NET或使用tilda.
如何在WPF中获得相对路径?
WORKS: XDocument xmlDoc = XDocument.Load(@"c:\testdata\customers.xml");
DOES NOT WORK: XDocument xmlDoc = XDocument.Load(@"~\Data\customers.xml");
DOES NOT WORK: XDocument xmlDoc = XDocument.Load(@"~/Data/customers.xml");
Run Code Online (Sandbox Code Playgroud)
Tim*_*son 17
XDocument xmlDoc = XDocument.Load(
Path.Combine(
AppDomain.CurrentDomain.BaseDirectory,
@"Data\customers.xml"));
Run Code Online (Sandbox Code Playgroud)
我假设该Data目录将与您的应用程序一起部署,与EXE位于同一根目录中.这通常是安全的,除非涉及影子复制; 例如,当您使用NUnit测试此代码时.(使用卷影复制,组成应用程序的程序集将被复制到临时目录,但是这样的文件会被遗忘.)
假设您不打算customers.xml在部署后进行修改,最安全的方法是将文件作为资源嵌入到程序集中.
XDocument xmlDoc = XDocument.Load(@"Data\customers.xml");
Run Code Online (Sandbox Code Playgroud)
要么
XDocument xmlDoc = XDocument.Load(@".\Data\customers.xml");
Run Code Online (Sandbox Code Playgroud)
顺便说一下,这与WPF无关,与Windows路径有关.
| 归档时间: |
|
| 查看次数: |
31137 次 |
| 最近记录: |