C# Can';无法从路径加载文件

C# Can';无法从路径加载文件,c#,C#,从路径加载xml时遇到问题,因为在我的电脑(和其他电脑)上,路径的一部分映射为: 这是我从数据库获得的路径: \serverName\files\System\Appldata\Application\3\u 5\TEST\Program\Version.xml 但在我的计算机上,路径如下所示: Y:\Application\3\u 5\TEST\Program 代码如下: var path = new DirectoryInfo(x.LocationName+@"\"+x.Folder

从路径加载xml时遇到问题,因为在我的电脑(和其他电脑)上,路径的一部分映射为: 这是我从数据库获得的路径:

\serverName\files\System\Appldata\Application\3\u 5\TEST\Program\Version.xml

但在我的计算机上,路径如下所示:

Y:\Application\3\u 5\TEST\Program

代码如下:

    var path = new DirectoryInfo(x.LocationName+@"\"+x.FolderName);
    var doc = new XmlDocument();

    //Loading the file
      doc.Load(path.FullName + @"\Version.xml");

有什么办法解决这个问题吗?

好吧,不要试图自己连接路径和文件名。
使用

这需要
使用System.IO在源文件的开头。
当然,只有在您拥有远程文件夹的权限时,才能同时使用映射版本或完整共享名。此外,如果您的数据库保留完整的共享名,请确保它以两个初始反斜杠存储

编辑现在查看您的编辑,同样,不要手动构建路径(并检查信息是否有效)


您正在使用网络路径访问文件。请确保您能够从Web服务器上的文件资源管理器访问该文件

请尝试以下代码:

var doc = new XmlDocument();
var finalPath = Path.Combine(x.LocationName, x.FolderName, "Version.xml");
//Loading the file
doc.Load(finalPath);

path.FullName
path
的值是什么?错误消息是什么?path.FullName是\\serverName\files\System\Appldata\Application\3\u 5\TEST\Program\假设当前帐户有权访问完整的UNC路径,您应该能够使用它。但是,请注意,完整路径的开头缺少反斜杠:
\\serverName\files\System\Appldata\Application\3\u 5\TEST\Program\Version.xml
只要您有网络路径,本地映射就不会出现问题。有很多方法可以将一个转换为另一个,但是如果您已经有了UNC路径,我看不出有什么问题。请使用“Path.Combine”而不是手动在路径中插入斜杠。
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"));
var doc = new XmlDocument();
var finalPath = Path.Combine(x.LocationName, x.FolderName, "Version.xml");
//Loading the file
doc.Load(finalPath);