public void LoadFeedsFromStorage() { Feeds.Clear(); Bookmarks.Clear(); if (Directory.Exists(FeedDirectory)) { foreach (var feed_file in Directory.GetFiles(FeedDirectory, "*.feed")) { Feed feed; using (var file = new StreamReader(feed_file)) feed = Feed.Deserialize(Path.GetFileNameWithoutExtension(feed_file), file.ReadToEnd()); foreach (var post_file in Directory.GetFiles(Path.Combine(FeedDirectory, feed.ID), "*.post")) { Feed.Post post; using (var file = new StreamReader(post_file)) post = Feed.Post.Deserialize(feed, Path.GetFileNameWithoutExtension(post_file), file.ReadToEnd()); feed.Posts.Add(post); } feed.Posts.Sort((x, y) => y.DatePublished.CompareTo(x.DatePublished)); Feeds.Add(feed); } foreach (var bookmark_file in Directory.GetFiles(Path.Combine(FeedDirectory, "bookmarks"), "*.bookmark")) { Bookmark bookmark; using (var file = new StreamReader(bookmark_file)) bookmark = Bookmark.Deserialize(Path.GetFileNameWithoutExtension(bookmark_file), file.ReadToEnd()); Bookmarks.Add(bookmark); } } else { Directory.CreateDirectory(Path.Combine(FeedDirectory, "bookmarks")); } }