如何从c#中的字符串获取实际路径

时间:2018-02-24 12:53:31

标签: c# string

我正面临在File.Copy()方法中传递路径的问题。 这里我创建了一个字符串dest。当我在File.copy()中传递它时,它正在使用" \"双斜线。因此,我得到了非法性质的错误。请调查一下。

string dest = (@"\" + Environment.MachineName +@"\"+ Path.Replace(@"\\",@"\")).Replace(":", "$");  //the value get -"pt-LTP-109\\C$\\Temp\\192.168.0.205\\fileFolder"
dest = dest.Replace("\\\\", @"\") +"\\"+ "filename.txt"; // the value get -"\\pt-LTP-109\\C$\\Temp\\192.168.0.205\\fileFolder\\filename.txt"                             
dest = ("\"").ToString()+dest+"\""; //the value get- "\"\\pt-LTP-109\\C$\\Temp\\192.168.0.205\\fileFolder\\filename.txt\""
    File.Copy(source, dest, true);`

2 个答案:

答案 0 :(得分:2)

这是一种非常复杂的做事方式......要将正常路径转换为UNC路径,您只需要做两件事:

  1. :替换为$(您正确执行此操作)。

  2. 在路径前加上两个反斜杠和机器名称。

  3. 您的代码可以缩短为:

    string dest = System.IO.Path.Combine(@"\\" + Environment.MachineName, Path.Replace(":", "$"), "filename.txt");
    

答案 1 :(得分:0)

尝试

Path.GetFullPath(dest).Replace(@"\",@"\\");