wp8 IsolatedStorageFile XML讀寫方法

下面是本人寫的讀寫xml方法,供參考:
public void createNewFile(string fileName)
        {
            var appStorage = IsolatedStorageFile.GetUserStoreForApplication();
            try
            {
                if (!appStorage.FileExists(fileName))
                {
                    appStorage.CreateDirectory("XXXX");
                    appStorage.CreateFile(fileName);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
            }
        }
public async Task WriteToFile(StorageFile file)
        {
            try
            {
                string fileName = @"XXXX\" + file.Name;
                createNewFile(fileName);
                using (IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    using (IsolatedStorageFileStream isoStream = appStorage.OpenFile(fileName, FileMode.Create))
                    {
                        XmlWriterSettings xmlsetting = new XmlWriterSettings();
                        xmlsetting.Indent = true;
                        using (XmlWriter xmlwriter = XmlWriter.Create(isoStream, xmlsetting))
                        {
                            xmlwriter.WriteStartElement("Face");


                            xmlwriter.WriteStartElement("FaceRect");
                            xmlwriter.WriteAttributeString("Height", Convert.ToString(this._faceRect.Height));
                            xmlwriter.WriteAttributeString("Width", Convert.ToString(this._faceRect.Width));
                            xmlwriter.WriteAttributeString("Y", Convert.ToString(this._faceRect.Y));
                            xmlwriter.WriteAttributeString("X", Convert.ToString(this._faceRect.X));
                            xmlwriter.WriteEndElement();


                            xmlwriter.WriteStartElement("FaceFeature");
                            foreach (Point point in FaceFeature)
                            {
                                xmlwriter.WriteStartElement("Point");
                                xmlwriter.WriteAttributeString("Y", Convert.ToString(point.Y));
                                xmlwriter.WriteAttributeString("X", Convert.ToString(point.X));
                                xmlwriter.WriteEndElement();
                            }
                            xmlwriter.WriteEndElement();


                            xmlwriter.WriteStartElement("Sample");
                            xmlwriter.WriteAttributeString("IsSample", Convert.ToString(this._bSample));
                            xmlwriter.WriteEndElement();


                            xmlwriter.WriteStartElement("Pin");
                            xmlwriter.WriteAttributeString("IsPined", Convert.ToString(this._isPined));
                            xmlwriter.WriteEndElement();


                            xmlwriter.WriteEndElement();
                        }
                    }
                }


                using (IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    using (IsolatedStorageFileStream isostream = iso.OpenFile(fileName, FileMode.Open))
                    {
                        using (StreamReader reader = new StreamReader(isostream))
                        {
                            string str = reader.ReadToEnd();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
            }
        }




        public async Task ReadFromFile(StorageFile file)
        {
            try
            {
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.Async = true;
                FileStream fs = File.OpenRead(file.Path);
                using (XmlReader reader = XmlReader.Create(fs, settings))
                {
                    while (await reader.ReadAsync())
                    {
                        if (reader.NodeType == XmlNodeType.Element && reader.Name == "FaceRect")
                        {
                            this._faceRect.Height = Convert.ToSingle(reader.GetAttribute("Height"));
                            this._faceRect.Width  = Convert.ToSingle(reader.GetAttribute("Width"));
                            this._faceRect.Y      = Convert.ToSingle(reader.GetAttribute("Y"));
                            this._faceRect.X      = Convert.ToSingle(reader.GetAttribute("X"));
                        }
                        
                        if (reader.NodeType == XmlNodeType.Element && reader.Name == "Point")
                        {
                            if (FaceFeature == null)
                            {
                                _faceFeature = new List<Point>();
                            }


                            FaceFeature.Add(new Point() { Y = Convert.ToSingle(reader.GetAttribute("Y")), X = Convert.ToSingle(reader.GetAttribute("X")) });
                        }


                        if (reader.NodeType == XmlNodeType.Element && reader.Name == "Sample")
                        {
                            this._bSample = Convert.ToBoolean(reader.GetAttribute("IsSample"));
                        }


                        if (reader.NodeType == XmlNodeType.Element && reader.Name == "Pin")
                        {
                            this._isPined = Convert.ToBoolean(reader.GetAttribute("IsPined"));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(string.Format(@"{0}:{1}", this.ToString(), ex.Message));
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章