public static async Task <IList <EntryInfo> > GetHistoryEntriesInfo() { Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; IList <string> entriesKey = GetHistory(); IDictionary <string, EntryInfo> oldHistory = new Dictionary <string, EntryInfo>(StringComparer.OrdinalIgnoreCase); if (_chmHistoryFiles != null) { foreach (var x in _chmHistoryFiles.Entries) { oldHistory.Add(x.Key, x); } } else { _chmHistoryFiles = new EntriesInfo(); } List <EntryInfo> newHistory = new List <EntryInfo>(); List <string> invalidEntries = new List <string>(); foreach (var k in entriesKey) { if (oldHistory.ContainsKey(k)) { newHistory.Add(oldHistory[k]); } else if (await ChmFile.ContainsFile(k)) { try { MetaInfo info = await MetaInfo.ReadMetaInfo(k); EntryInfo entry = new EntryInfo(); entry.Key = k; entry.Name = info.GetDisplayName(); if (string.IsNullOrEmpty(entry.Name)) { entry.Name = "未知"; } entry.Image = await Snapshot.LoadSnapshot(k); newHistory.Add(entry); } catch { //Ignore invalidEntries.Add(k); } } else { invalidEntries.Add(k); } } await DeleteFromHistory(invalidEntries); _chmHistoryFiles.Entries = newHistory; return(newHistory); }
public static async Task<ChmFile> OpenLocalChmFile(EntryInfo entry) { return await OpenLocalChmFile(entry.Key); }