C# 如何从c中的字符串中获取实际路径#
Hi-am在File.Copy()方法中传递路径时遇到问题。 这里我创建了一个字符串dest。当我在File.copy()中传递它时,它采用了“\”双斜杠。正因为如此,我得到了非法字符的错误。请调查一下C# 如何从c中的字符串中获取实际路径#,c#,string,C#,String,Hi-am在File.Copy()方法中传递路径时遇到问题。 这里我创建了一个字符串dest。当我在File.copy()中传递它时,它采用了“\”双斜杠。正因为如此,我得到了非法字符的错误。请调查一下 string dest = (@"\" + Environment.MachineName +@"\"+ Path.Replace(@"\\",@"\")).Replace(":", "$"); //the value get -"pt-LTP-109\\C$\\Temp\\192.168.0
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);`
试一试
这是一个非常复杂的方式做这么简单的事情。。。要将普通路径转换为UNC路径,只需执行两项操作:
:
替换为$
(您的操作正确)string dest = System.IO.Path.Combine(@"\\" + Environment.MachineName, Path.Replace(":", "$"), "filename.txt");
为什么要在路径中添加引号?那肯定会使它无效。如何检查字符串?如果在调试器中,由于转义,它将使反斜杠加倍。此外,如果这应该是一个UNC路径,那么您需要在开始时使用双反斜杠,而这是您没有的。我假设您的问题只是添加引号,没有双反斜杠,没有删除反斜杠。对于初学者来说,路径不应该包含引号(
“
).你有一种非常奇怪的方法来构建你的路径…你到底想用这些来完成什么?我不认为他想复制每个反斜杠。这样做也会使路径无效。@Code\u初学者我相信使用这个答案是不好的做法…@VisualIncent和Alex M。你知道为什么这样做吗?我不认为你知道,如果你投票否决了这个答案,你就是不理解它,这就是为什么你认为它是错误的你知道自己为什么它工作吗?我还没有通过调试器运行过这个,但是路径不应该包含双反斜杠(UNC路径的开头除外)。因此,强迫它这样做是不好的做法,即使它(目前)有效。顺便说一句,避免否决票的一个好方法是在答案中加入解释,以便其他读者(和OP)能够预感到哪里出了问题,以及为什么你的解决方案会修复它。
string dest = System.IO.Path.Combine(@"\\" + Environment.MachineName, Path.Replace(":", "$"), "filename.txt");