【问题标题】:"Given Path Format Is Not Supported"... Can you help me?“不支持给定路径格式”......你能帮帮我吗?
【发布时间】:2020-05-14 18:52:54
【问题描述】:

所以,我做了一个语音识别器,它工作正常,我不确定它为什么现在给我这个错误。有什么想法吗?

String res = e.Result.Text;

string yol = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
            string settings = ("@" + yol + "\\" + "settings" + "\\");


            if (res == "Hi Bot")
            {
              pictureBox1.Image = Image.FromFile(settings + "mybot.png"); -->That's where i get the error
              say(greetings_random());
            }

【问题讨论】:

  • 检查 mybot.png 的“复制到输出目录”设置。 (右键mybot.png,选择属性,看看Copy to Output Directory是否没有“Do not copy”的值

标签: c# speech-recognition


【解决方案1】:
string yol = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
string settings = ("@" + yol + "\\" + "settings" + "\\");

这意味着settings 的值是"@C:\Path\To\Executable\settings\"

这可能不是你想要的——我不确定@ 试图达到什么目的,但它在这样的路径的开头是无效的。

将来,调试此代码并检查 settings 变量很快就会发现问题。


也就是说,建议使用 Path.Join (.NET Core 2.1+) 或 Path.Combine 而不是字符串连接来创建这样的路径。

【讨论】:

  • 哦,我想要类似@"C:\Path\To\Executable\settings\mybot.png"... 那我该怎么做呢?
  • @Dafi 你可能对verbatim string 的语法感到困惑。这是 declaring 字符串的语法——如果您在开头 " 之前使用 @,这仅意味着该字符串对于哪些字符应该转义有不同的规则。例如,您可以写 yol + @"\settings\" 而不是 yol + "\\settings\\"
  • 我不知道。是的,这解决了我的问题。谢谢你的帮助:)
猜你喜欢
  • 2011-11-13
  • 2012-04-21
  • 1970-01-01
  • 2017-09-14
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
相关资源
最近更新 更多