WP7.1文件文件处理 - 为什么我收到错误“MethodAccessExepction未处理”?

时间:2012-08-20 13:54:00

标签: c# xna windows-phone-7.1 text-files multidimensional-array

我正在尝试创建一个加载来自.txt文件的数据的2D整数数组,但是当它编译这行代码时:string line = stream.ReadLine();它会在线程标题中给出错误,这也是:

  

尝试访问该方法失败,System.IO.StreamReader..ctor(System.String)

我知道在PC和WP7 / 360之间使用txt文件之间可能存在差异但是我确信这是可能的,因为我的学院导师的应用程序在他的WP7手机上使用了.txt文件,我有什么样的变化必须使Windows Phone正确读取文件吗?

对于那些想要额外信息的人来说,这是将txt加载到int数组的整个方法:

    public void loadMap(string mapFileName)
    {
        int x = 0, y = 0;

        StreamReader stream = new StreamReader(mapFileName);

        do
        {
            string line = stream.ReadLine();
            string[] numbers = line.Split(',');

            foreach (string e in numbers)
            {
                int tile = int.Parse(e);
                this.tileID[x, y] = tile;

                x++;
            }
            y++;
        }
        while (!stream.EndOfStream);
        xSize = x;
        ySize = y;

        stream.Close();

    }

修改
尽管我使用IsolatedStorage方法遇到了新的错误,但现在已经取得了一些进展, 我在解析代码之前添加了这段代码:

    var store = IsolatedStorageFile.GetUserStoreForApplication();
    var readStream = new IsolatedStorageFileStream(mapFileName, FileMode.Open, store);
    var stream = new StreamReader(readStream);  

现在在这里:var readStream = new IsolatedStorageFileStream(mapFileName, FileMode.Open, store);我收到错误:

  

IsolatedStorageFileStream上不允许操作。

任何想法?

1 个答案:

答案 0 :(得分:1)

出于安全原因,Windows Phone上的应用程序是沙盒,这实际上只是意味着您无法触及不属于您的内容。请考虑使用XNA的StorageContainer类,它旨在解决非PC平台固有的安全限制。

<强>更新

进一步调查显示,Windows Phone似乎不提供此功能。相反,您应该使用System.IO.IsolatedStorage类。