0

このコードを使用しようとすると、問題が発生します。

using (IsolatedStorageFile myISF = IsolatedStorageFile.GetUserStoreForApplication())         
{
    try
    {
        object _readLock = new object();
        lock (_readLock)
        {
            var myFS = myISF.CreateFile(reply_FileName.Replace(" ", "_"));

            StreamWriter mySW = new StreamWriter(myFS);
            mySW.WriteLine(jsonToSave);
            mySW.Close();
        }
    }
    catch (IsolatedStorageException ex) { MessageBox.Show(ex.Message); }                
}

私もすでにStreamWriter使ってみましたが、問題は解決しませんでした。私が使用する最初のページに2つのページがあります:

using (myFS = new IsolatedStorageFileStream(Forms_path + form_ID + ".json",
                  FileMode.Create, FileAccess.Write, myISF))
{
    using (StreamWriter mySW = new StreamWriter(myFS))
    {
        mySW.WriteLine(json);
        mySW.Close();
    }
    myFS.Dispose();
}
myFS.Close();

それはうまくいっています。2番目のコードだけが間違っています。いろいろなバリエーションを試しましたが、どれもうまくいきません。

編集:問題が発生すると、出力ウィンドウに次のメッセージが表示されます。

タイプ 'System.IO.IsolatedStorage.IsolatedStorageException' の初回例外が mscorlib.ni.dll で発生しました

EDIT2: 問題は私のファイル名でした。ファイル名に日付を追加しましたが、「:」と「/」記号が原因で問題が発生しました。情けなく思う…

4

2 に答える 2

0

メソッドが呼び出されるたびにロックオブジェクトを作成して、他のスレッドをブロックしないようにするため、例外が発生します。_readLock 変数は、クラスの静的フィールドである必要があります。

于 2013-07-08T09:38:43.040 に答える