public static ObservableCollection <BackupVM> GetBackupVMs() { ObservableCollection <BackupVM> backupVMs = new ObservableCollection <BackupVM>(); string shortcutsBackupPath = Helper.GetShortcutsBackupPath(); DirectoryInfo directoryInfo = new DirectoryInfo(shortcutsBackupPath); // https://stackoverflow.com/questions/1179970/how-to-find-the-most-recent-file-in-a-directory-using-net-and-without-looping //IOrderedEnumerable<FileInfo> fileInfos = directory.GetFiles().OrderByDescending(f => f.LastWriteTime); IOrderedEnumerable <FileInfo> fileInfos = directoryInfo.GetFiles().OrderByDescending(f => f.Name); foreach (FileInfo fileInfo in fileInfos) { string fileName = fileInfo.Name; string fileSize = fileInfo.Length.ToString() + " bytes"; BackupVM backupVM = new BackupVM(fileName, fileSize); backupVMs.Add(backupVM); } return(backupVMs); }
/// <summary> /// Create a backup of the current windows & shortcuts. /// </summary> /// <returns></returns> public static string BackupShortcuts() { // Get the application context ShortcutsVM shortcutsVM = ((App)Application.Current).DataContext; Shortcuts shortcuts = ContextHelper.VMToShortcuts(shortcutsVM); string shortcutsSerialized = JsonConvert.SerializeObject(shortcuts); string shortcutsBackupPath = Helper.GetShortcutsBackupPath(); DateTime dateTime = DateTime.Now; string backupFileName = dateTime.ToString("yyyyMMdd_HHmmss_fff", CultureInfo.InvariantCulture); string backupFilePath = Path.Combine(shortcutsBackupPath, backupFileName); FileIO.WriteFile(backupFilePath, shortcutsSerialized, false); FileInfo fileInfo = new FileInfo(backupFilePath); string fileSize = fileInfo.Length.ToString() + " bytes"; // Update the shortcutsVM BackupVM backupVM = new BackupVM(backupFileName, fileSize); shortcutsVM.BackupVMs.Add(backupVM); shortcutsVM.BackupVMs.Sort((a, b) => { return(b.FileName.CompareTo(a.FileName)); }); return(backupFileName); }