private void ClearRecordingCache() { try { var path = Path.Combine(UserSettings.All.TemporaryFolderResolved, "ScreenToGif", "Recording"); if (!Directory.Exists(path)) { return; } var list = Directory.GetDirectories(path).Select(x => new DirectoryInfo(x)) .Where(w => (DateTime.Now - w.CreationTime).TotalDays > (UserSettings.All.AutomaticCleanUpDays > 0 ? UserSettings.All.AutomaticCleanUpDays : 5)).ToList(); //var list = Directory.GetDirectories(path).Select(x => new DirectoryInfo(x)); foreach (var folder in list) { if (MutexList.IsInUse(folder.Name)) { continue; } Directory.Delete(folder.FullName, true); } } catch (Exception ex) { LogWriter.Log(ex, "Automatic clean up - Recordings"); } }
private async void ClearTempButton_Click(object sender, RoutedEventArgs e) { ClearTempButton.IsEnabled = false; try { var path = Path.Combine(UserSettings.All.TemporaryFolder, "ScreenToGif", "Recording"); if (!Directory.Exists(path)) { _folderList.Clear(); return; } _folderList = await Task.Factory.StartNew(() => Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly).Select(x => new DirectoryInfo(x)).ToList()); if (Dialog.Ask("ScreenToGif", LocalizationHelper.Get("TempFiles.KeepRecent"), LocalizationHelper.Get("TempFiles.KeepRecent.Info"))) { _folderList = await Task.Factory.StartNew(() => _folderList.Where(w => (DateTime.Now - w.CreationTime).Days > 5).ToList()); } foreach (var folder in _folderList) { if (MutexList.IsInUse(folder.Name)) { continue; } Directory.Delete(folder.FullName, true); } _folderList = await Task.Factory.StartNew(() => Directory.GetDirectories(path, "*", SearchOption.TopDirectoryOnly).Select(x => new DirectoryInfo(x)).ToList()); } catch (Exception ex) { LogWriter.Log(ex, "Error while cleaning the Temp folder"); } finally { App.MainViewModel.CheckDiskSpace(); } ClearTempButton.IsEnabled = _folderList.Any(); }
internal void ClearTemporaryFilesTask() { try { if (!UserSettings.All.AutomaticCleanUp || Global.IsCurrentlyDeletingFiles || string.IsNullOrWhiteSpace(UserSettings.All.TemporaryFolderResolved)) { return; } Global.IsCurrentlyDeletingFiles = true; var path = Path.Combine(UserSettings.All.TemporaryFolderResolved, "ScreenToGif", "Recording"); if (!Directory.Exists(path)) { return; } var list = Directory.GetDirectories(path).Select(x => new DirectoryInfo(x)) .Where(w => (DateTime.Now - w.CreationTime).TotalDays > (UserSettings.All.AutomaticCleanUpDays > 0 ? UserSettings.All.AutomaticCleanUpDays : 5)).ToList(); //var list = Directory.GetDirectories(path).Select(x => new DirectoryInfo(x)); foreach (var folder in list) { if (MutexList.IsInUse(folder.Name)) { continue; } Directory.Delete(folder.FullName, true); } } catch (Exception ex) { LogWriter.Log(ex, "Automatic clean up"); } finally { Global.IsCurrentlyDeletingFiles = false; CheckDiskSpace(); } }