我在从路径加载xml时遇到问题,因为在我的电脑(和其他人)上映射了部分路径: 这是我从数据库中获得的路径:
\服务器\文件\ SYSTEM \ Appldata \应用程序\ 3_5 \ TEST \程序\ Version.xml
但是在我的电脑上,路径看起来像这样:
Y:\应用程序\ 3_5 \ TEST \程序
这是代码:
var path = new DirectoryInfo(x.LocationName+@"\"+x.FolderName);
var doc = new XmlDocument();
//Loading the file
doc.Load(path.FullName + @"\Version.xml");
有没有解决这个问题的方法?
答案 0 :(得分:3)
好吧,不要试图自己连接路径和文件名 使用Path.Combine
doc.Load(Path.Combine(path.FullName, "Version.xml"));
这需要源文件开头的using System.IO;
。
当然,只有拥有对远程文件夹的权限,才能使用映射版本或完整共享名。此外,如果您的数据库保留完整的共享名,请确保它与两个初始反斜杠一起存储
编辑再次看到你的编辑,不要手动建立你的路径(并检查信息是否有效)
var path = new DirectoryInfo(Path.Combine(x.LocationName, x.FolderName));
if(!path.Exists)
{
MessageBox.Show("Invalid path retrieved:" + path.FullName);
return;
}
var doc = new XmlDocument();
doc.Load(Path.Combine(path.FullName,"Version.xml"));
答案 1 :(得分:0)
您正在使用网络路径访问该文件。请确保您能够从网络服务器上的文件资源管理器访问该文件。
试试这段代码:
var doc = new XmlDocument();
var finalPath = Path.Combine(x.LocationName, x.FolderName, "Version.xml");
//Loading the file
doc.Load(finalPath);