Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 代码无法引用本地目录_C#_Filepath - Fatal编程技术网

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目录。感谢您的解决方案。我不希望在这个类中做代码更改,所以我没有尝试您的建议。然而,这种逻辑似乎对我有效。非常感谢你和我分享这个。现在我的问题解决了。:)我真的学到了一些新东西。再次感谢