0

WindowsPhone7.5でIsolatedStorageを使用しています。ファイルからテキストを読み込もうとしています。しかし、デバッガーは、IsolatedStorageFileStreamでの操作は許可されていないと言います。なんで?

//Read the file from the specified location.
fileReader = new StreamReader(new IsolatedStorageFileStream("info.dat", FileMode.Open, fileStorage));
//Read the contents of the file (the only line we created).
string textFile = fileReader.ReadLine();

//Write the contents of the file to the MEssageBlock on the page.
MessageBox.Show(textFile);
fileReader.Close();

私の新しいコードをUPD

object _syncObject = new object();

                        lock (_syncObject)
                        {
                            using (var fileStorage = IsolatedStorageFile.GetUserStoreForApplication())
                            {

                                using (FileStream stream = new FileStream("/info.dat", FileMode.Open, FileAccess.Read, FileShare.Read))
                                {
                                    using (var reader = new StreamReader(stream))
                                    {


                                        string textFile = reader.ReadLine();
                                        MessageBox.Show(textFile);

                                    }
                                }
                            }


                        }

                    }
4

3 に答える 3

0

ただの推測:

  • WPエミュレーターは、閉じたときにすべてのIsolatdストレージの内容をリセットします
  • 存在しないファイルへのパスを指定してFileMode.Openを使用した場合、操作が許可されていない例外が発生します。

を使用fileStorage.FileExists()して、ファイルがそこにあるかどうかを確認するか、を使用できますFileMode.OpenOrCreate

于 2012-08-20T08:06:22.027 に答える
0

通常、分離ストレージを使用した場合、次のようなことを行いました。

using (var stream = fileStorage.OpenFile("info.dat", FileMode.Open))
{
    using (var reader = new StreamReader(stream))
    {
        ...
    }
}

...コンストラクターを直接呼び出すのではなくIsolatedStorageFileStream。それがうまくいくかどうかはわかりませんが、試してみる価値はあります...

于 2012-08-18T09:22:29.853 に答える
0

これを試してみてください、それは私のために働きます:それがあなたのためにも働くことを願っています

        String sb;

        using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (myIsolatedStorage.FileExists(fileName))
            {
                StreamReader reader = new StreamReader(new IsolatedStorageFileStream(fileName, FileMode.Open, myIsolatedStorage));

                sb = reader.ReadToEnd();

                reader.Close();
            }

            if(!String.IsNullOrEmpty(sb))
            {
                 MessageBox.Show(sb);
            }
        }

これが機能しない場合は、ファイルが存在しない可能性があります。

于 2012-08-20T12:19:36.307 に答える