从WP应用程序的项目文件夹中访问文件

时间:2013-01-15 15:48:39

标签: c# c#-4.0 xna windows-phone-8 xna-4.0

我是Windows Phone开发的新手,我正在尝试做一个简单的培训应用程序。

我希望我的应用加载一些我放入项目内部文件夹的音频文件。

这是一个简短的片段:

private void LoadSound(String SoundFilePath, out SoundEffect Sound)
    {

        // For error checking, assume we'll fail to load the file.
        Sound = null;
        try
        {                
            // Holds informations about a file stream.                
            StreamResourceInfo SoundFileInfo = Application.GetResourceStream(new Uri(SoundFilePath, UriKind.Relative));

我的文件夹结构类似于

- Project
    - Kits
        - TestKit_128
            - Bass_126.wav

并致电

Button.setSound("Kits\\TestKit_128\\bass_126.wav");

抛出System.NullReferenceException,因为在创建URI时找不到路径。 (至少我是这么认为的!)

我该怎么办?

有没有办法从项目中的文件夹加载文件,或者在我第一次运行应用程序时将它们复制到IsolatedStorage中?

由于

编辑:

我刚刚用WinRar打开了XAP文件,并且没有“Kits”文件夹,所以我想我的问题是如何让它将文件夹添加到XAP文件中。

3 个答案:

答案 0 :(得分:0)

您是否将wav文件的构建操作设置为“内容”?右键单击WAV文件 - >属性 - >构建动作==内容。

答案 1 :(得分:0)

我认为您必须将文件夹和文件添加到项目中(我假设您使用的是Visual Studio)。尝试右键单击您的解决方案并添加现有对象(在本例中为您的wav文件)。

答案 2 :(得分:0)

试试这个:

        Uri uri = new Uri("Kits/TestKit_128/bass_126.wav", UriKind.Relative);//Above the Kits folder only the project itself. 
        StreamResourceInfo sr = Application.GetResourceStream(uri);

        try
        {
            using (Stream stream = sr.Stream)
            {
                //working here with your data image or wav or whatever you want from URI
            }
        }
        catch (Exception)
        {
        }

这适用于项目内的资源,对我有用。关于“内容”的prevoius注释也是正确的,如果没有它,它将无法工作。我认为问题是地址中的双斜线。