public static IList<PathItem> ParseFolderFile(string path) { FileStream fileStream = null; StreamReader streamReader = null; try { FileInfo fileInfo = new FileInfo(path); if (!fileInfo.Exists) return null; fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); streamReader = new StreamReader(fileStream, true); string sBuffer = String.Format("<root>{0}</root>", streamReader.ReadToEnd()); streamReader.Close(); streamReader = null; fileStream.Close(); fileStream = null; var stringReader = new StringReader(sBuffer); var xmlTextReader = new XmlTextReader(stringReader) { Namespaces = false }; IList<PathItem> result = new List<PathItem>(); while (xmlTextReader.Read()) { if ((xmlTextReader.NodeType != XmlNodeType.Element) || (xmlTextReader.Name != "folder")) continue; PathItem item = new PathItem(xmlTextReader.GetAttribute("name"), xmlTextReader.GetAttribute("path")); result.Add(item); } return result; } catch (Exception ex) { System.Diagnostics.Trace.TraceError("Error parsing Favorites list [{0}]:\r\n{1}\r\n{2}", path, ex.Message, ex.StackTrace); throw; } finally { if (streamReader != null) streamReader.Close(); if (fileStream != null) fileStream.Close(); } }
protected virtual object commandAddExecute(object parameter) { var newItem = new PathItem(); if (PathList != null) PathList.Add(newItem); return null; }