如何获取添加到Windows Mobile应用程序的文件的文件路径?

时间:2009-05-18 08:02:14

标签: c# windows-mobile filepath playsound

我在我的Windows Mobile应用程序中添加了一个wav文件,我想在CoreDll.dll中使用MobilePlaySound来播放它。

fileName是其参数之一:


MobilePlaySound(fileName, IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_FILENAME));

我创建了一个新文件夹'sound',将'start.wav'添加到项目中,并将其属性'Build Action'设置为'Embedded Resources'。

然后我设置了fileName:


fileName = "\\Program Files\\myApp\\sound\\start.wav";

但声音完全没有发挥。什么是正确的filePath呢?

1 个答案:

答案 0 :(得分:1)

通过将构建操作设置为“Embedded Resource”,文件将作为资源编译到程序集中。这意味着wav文件将嵌入到.exe或.dll文件中,并且不会出现在文件系统中。因此,您无法将wav的文件名传递给需要它的某个方法。

有两种方法可以解决它:如果您确实希望将wav文件作为嵌入式资源,则需要在运行时提取资源并将其写入文件系统中的文件。然后,您可以将该文件的名称传递给MobilePlaySound方法。在这种情况下,我个人不会选择这个解决方案。

另一个解决方案是将wav文件作为资源嵌入,但让它在文件系统中作为自己的文件存在。要实现此目的,请将构建操作设置为“内容”,并将“复制到输出目录”设置为“始终复制”或“如果更新则复制”。这将使编译器在输出中包含该文件。在这种情况下,您对文件应该位置的假设是正确的。

简而言之:

  • 构建动作=“内容”
  • 复制到输出目录=“始终复制”或“如果更新则复制”