路径错误(FileNotFoundException)

时间:2014-02-06 12:48:58

标签: c# wpf

我有这段代码:

private void button4_MouseEnter(object sender, MouseEventArgs e)
        {
            System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"Resources/navigation.wav");
            player.Play();
        }

我得到FileNotFoundException,但是navigation.wav在Project / Resources中。请帮助!!!

4 个答案:

答案 0 :(得分:2)

这会查找Bin\Debug文件夹

中的文件

您有几种选择:

  • 右键单击该文件,然后选择“属性”。选择BuildAction = Content 您将在Bin \ Debug \ Resource \ Sound.wav
  • 下找到该文件
  • 右键单击该文件,然后选择“属性”。选择BuildAction = Embedded Resource。

var assembly = Assembly.GetExecutingAssembly();
var resourceName = "NamespaceName.FolderName.Sound.wav";   
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
    var wave = new WaveFileReader(stream);
    Console.WriteLine(wave.TotalTime);
}

答案 1 :(得分:1)

路径是相对于可执行文件确定的,因此在这种情况下可能是Bin\Debug

尝试将应用程序中的资源添加为Content(它将文件复制到Bin\Debug)。这应该有用。

build action

答案 2 :(得分:0)

该路径相对于当前运行应用程序的目录。如果你在Visual Studio中点击F5,这很可能是bin / Debug,所以文件应该在那里。

考虑嵌入此资源,或将Copy to output directory属性设置为“始终复制”。

答案 3 :(得分:0)

首先,您需要一个反斜杠:@"Resources\navigation.wav"

如果这没有帮助,那么很可能您从不同的目录运行应用程序。你是否在VS的调试模式下运行?您的文件是Project\bin\Debug\Resources吗?