【问题标题】:Replace "\\" with "\" in a path将路径中的“\\”替换为“\”
【发布时间】:2018-12-13 13:50:37
【问题描述】:

File.WriteAllBytes 函数在路径输入中 @"\" 工作正常

File.WriteAllBytes(@"C:\folder\file.png", bytes); 

但带有“\\”

File.WriteAllBytes("C:\\folder\\file.png", bytes); 

返回:不支持给定路径的格式

在我的应用程序中,我有类似的东西

 File.WriteAllBytes(getFile(fid), bytes); 

getFile(fid) 返回的地方

C:\\文件夹\\fileid.png

所以我尝试了 getFile(fid).Replace("\\",@"\").. 我期待这个

C:\folder\fileid.png

但我还有这个

C:\\文件夹\\fileid.png

和错误不支持给定路径的格式

【问题讨论】:

  • 你的替换方法应该是 Replace("\\\\","\\") this Edited replace method
  • 您的前两行代码是相同的,如果第一行有效,则第二行不可能失败。
  • getFile(fid) 返回的文件名中可能有不支持的字符?!像冒号等?

标签: c# asp.net-mvc visual-studio


【解决方案1】:

getFile(fid).Replace("\\",@"\") 中,"\\" 的计算结果为\(第一个\ 用作转义字符,以转义第二个字符,即实际的\)。 @"\" 计算为\。 Net,您的代码尝试将 \ 替换为 \ ,但没有任何作用。

请尝试getFile(fid).Replace(@"\\",@"\")。这应该可以满足您的需求。

【讨论】:

  • getFile(fid).Replace("\\\\","\\")
  • @Frederik Carlier 它仍然返回 C:\\folder\\fileid.png 和 .Replace(@"\\",@"\")
  • @RandRandom 它仍然返回 C:\\folder\\fileid.png with with .Replace("\\\\","\\");
  • @ptiflo 你在看调试器,验证那个字符串吗?如果是这样,调试器会将 \ 显示为 \\ - 正如您在此处看到的 i.stack.imgur.com/UOUwi.png - 但实际上它只是一个 \
  • @ptiflo - 在这里查看带有单或双 \ 的扩展截图 - i.stack.imgur.com/Qzuqr.png
猜你喜欢
  • 2011-10-19
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多