C# 代码无法引用本地目录
情况是这样的: 我正在修改某人的代码,以便从共享路径下载图像文件。因此,用户将代码段硬编码为C# 代码无法引用本地目录,c#,filepath,C#,Filepath,情况是这样的: 我正在修改某人的代码,以便从共享路径下载图像文件。因此,用户将代码段硬编码为@“\\\”+本地路径 由于该呼叫将从共享路径\\network\bla\bla\bla下载,因此可以通过这种方式获取硬代码 现在我的问题来了,我实际上需要修改一些其他部分,并在播放模式下进行测试,然后才能将其交付实际使用。但是,我的工作方针是不要删除附加的@“\\”。因为,如果没有@“\\”,路径将无法链接到共享目录,并且此已更改的.dll无法用于实际活动 但是,如果使用回放,文件路径现在将是\\C:\
@“\\\”+本地路径
由于该呼叫将从共享路径\\network\bla\bla\bla
下载,因此可以通过这种方式获取硬代码
现在我的问题来了,我实际上需要修改一些其他部分,并在播放模式下进行测试,然后才能将其交付实际使用。但是,我的工作方针是不要删除附加的@“\\”
。因为,如果没有@“\\”
,路径将无法链接到共享目录,并且此已更改的.dll无法用于实际活动
但是,如果使用回放,文件路径现在将是
\\C:\temp\Images
,这将是错误的。我现在的问题是,如何保持代码链接到共享路径的能力,同时创建本地路径,以便代码可以引用。UNC路径\\localhost\C$\
将访问本地计算机上的驱动器C:。最简单的解决方案是只需提供一个指示要创建的路径类型的标志e、 g
public string BuildPath(bool isUnc, params string[] pathParts)
{
var path = Path.Combine(pathParts);
return isUnc ? @"\\" + path : path;
}
...
var uncPath = BuildPath(isUnc: true, "network", "bla", "bla", "bla");
var localPath = BuildPath(isUnc: false, @"C:\", "temp", "images");
@“\\”变成了@“\”。我输入了双反斜杠,但我不知道最后怎么都是单斜杠最后,我将回放xml中的本地路径节点更改为localhost\C$\temp\Images。在附加“\\”之后,完整路径拼写为“\\localhost\C$\temp\Images”,因此现在指的是rigth目录。感谢您的解决方案。我不希望在这个类中做代码更改,所以我没有尝试您的建议。然而,这种逻辑似乎对我有效。非常感谢你和我分享这个。现在我的问题解决了。:)我真的学到了一些新东西。再次感谢