我正面临在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);`
答案 0 :(得分:2)
这是一种非常复杂的做事方式......要将正常路径转换为UNC路径,您只需要做两件事:
将:
替换为$
(您正确执行此操作)。
在路径前加上两个反斜杠和机器名称。
您的代码可以缩短为:
string dest = System.IO.Path.Combine(@"\\" + Environment.MachineName, Path.Replace(":", "$"), "filename.txt");
答案 1 :(得分:0)
尝试
Path.GetFullPath(dest).Replace(@"\",@"\\");