1

WP7 で XML ドキュメントから読み取ろうとしているのですが、WP7 エミュレーターを再起動した後に初めてプログラムを実行したときに、単に得られない奇妙なエラーが発生しましたが、デバッグで実行すると、エミュレーターを閉じると、実行時エラーが表示されます:「XmlException was unhandled Cannot find file 'appdata.xml' in the application xap package.」最初にファイルが存在するかどうかを確認するため、これは奇妙です。

using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
    if (store.FileExists("appdata.xml"))
    {
        XDocument loadedData = XDocument.Load("appdata.xml"); // <-- runtime error
        //code for parsing xml to variables
    }
}

if ステートメントに入るので、ファイルは存在するはずですが、XDocument は何らかの理由でそれを好まないので、何かアイデアはありますか?

詳細については、アプリでボタンをタップしたときにデータを保存する方法を次に示します。また、この関数が呼び出されていない場合、エラーは発生しません

private void SaveData()
{
    rulesData = new AppData(StartCashRule.Text, LandGoRule.Text, FreeParkingRule.Text, FullCircuitRule.Text, AuctionRule.Text);

    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    {
        IsolatedStorageFileStream ifStream = new IsolatedStorageFileStream("appdata.xml", FileMode.OpenOrCreate, store);

        using (XmlWriter writer = XmlWriter.Create(ifStream))
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("myData");

            writer.WriteElementString("Starting_Cash", rulesData.myStartingCash);
            writer.WriteElementString("Land_on_Go_Data", rulesData.myLandOnGo);
            writer.WriteElementString("Free_Parking_Data", rulesData.myFreeParking);
            writer.WriteElementString("Full_Circuit_Data", rulesData.myFullCircuit);
            writer.WriteElementString("Auction_Data", rulesData.myAuction);

            writer.WriteEndElement();
            writer.WriteEndDocument();
        }

        ifStream.Close();
    }
}

ありがとう - ライアン

4

1 に答える 1

4

ファイルが実際に存在する IsolatedStorage ストアへの参照なしで、「appdata.xml」という名前を XDocument.Load に渡しています。

あなたはこのようなものを書くべきです

XDocument loadedData = XDocument.Load(store.OpenFile("appdata.xml", FileMode.Open));
于 2012-12-09T13:58:04.247 に答える