0

このコードを実行するたびに:

IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
StreamWriter Writer = new StreamWriter(new IsolatedStorageFileStream("TestFile.txt", FileMode.OpenOrCreate, fileStorage));
Writer.WriteLine(email1.Text + "," + email2.Text + "," + email3.Text + "," + email4.Text);
Writer.Close();

次のエラーが表示されます。

An exception of type 'System.IO.IsolatedStorage.IsolatedStorageException' occurred in mscorlib.ni.dll but was not handled in user code

私はエミュレータを使用していますが、それは問題ではありません。私は行を含めました

Using System.IO.IsolatedStorage;
4

1 に答える 1

3

IsolatedStorage の使用中に発生するまさにそのような問題は次のとおりです。

System.IO.IsolatedStorage.IsolatedStorageException

これは、使用後にストレージを実際に閉じていないためです。これにより、セキュリティに関しても例外が発生します。コードを次のように書き換えます。

using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (var file = storage.OpenFile("TestFile.txt", System.IO.FileMode.OpenOrCreate))
            {
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter())
                {
                    writer.WriteLine(email1.Text + "," + email2.Text + "," + email3.Text + "," + email4.Text);
                }
            }
        }

実際に using が行うことは、 using が dispose メソッドを呼び出して再利用可能にすることです。storage、file stream、streamwriter には、実際に「using」を使用するメリットがある dispose メソッドがあります。これは通常、リソースを維持するための例外を発生させませんが、ファイル名に関する引数の例外は依然として問題を引き起こします。

ファイルと入力の処理中は、Try...catch を常に使用する必要があります。

読み方としての編集コード:

string dataToRead = string.Empty;
using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
   using (var file = storage.OpenFile("TestFile.txt", System.IO.FileMode.Open))
   {
        using (var reader = new System.IO.StreamReader(file))
        {
                dataToRead = reader.ReadToEnd();
        }
   }
}
于 2013-09-21T18:28:42.810 に答える