public BackupFolder(string name, Folder folder) { ParentId = null; Name = name; Directory = folder.GetDirectory(); SubType = folder.SubType; }
public BackupFolder(long?parentId, DirectoryInfo directory, SubfolderType subType) { ParentId = parentId; Directory = directory; Name = Directory.Name; SubType = subType; }
private static void OnSubTypeSelectionPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { FolderPicker s = (FolderPicker)sender; SubfolderSelectionType oldValue = (SubfolderSelectionType)e.OldValue; SubfolderSelectionType newValue = (SubfolderSelectionType)e.NewValue; if (s.Folder != null) { s.UpdateCbxSubfolder(); } else { SubfolderType subType = GetSubfolderType(oldValue, s.cbxSubfolder.IsChecked); (bool isVisible, bool?isChecked) = GetCbxSubfolderProperties(newValue, subType); s.cbxSubfolder.Visibility = isVisible ? Visibility.Visible : Visibility.Collapsed; s.cbxSubfolder.IsChecked = isChecked; } }
public static IEnumerable <FileInfo> EnumerateFiles(this DirectoryInfo dir, SubfolderType type) { if (type == SubfolderType.No) { yield break; } if (type == SubfolderType.This) { type = SubfolderType.No; } foreach (FileInfo file in dir.GetFiles()) { yield return(file); } foreach (FileInfo file in EnumerateDirectories(dir, type).SelectMany(GetFilesWithoutException)) { yield return(file); } }
public static void DeleteContent(this DirectoryInfo dir, SubfolderType type) { if (type == SubfolderType.No) { return; } if (type == SubfolderType.All) { foreach (DirectoryInfo subDir in EnumerateDirectories(dir, SubfolderType.This)) { DeleteContent(subDir, SubfolderType.All); subDir.Delete(true); } } foreach (FileInfo file in EnumerateFiles(dir, SubfolderType.This)) { file.Delete(); } }
public SerializableFolder(string originalPath, SubfolderType subType, bool autoRefresh) { AutoRefresh = autoRefresh; OriginalPath = originalPath; SubType = subType; }
public SerializableFolder(string originalPath, SubfolderType subType) : this(originalPath, subType, Folder.AutoRefreshDefault) { }
public static IEnumerable <DirectoryInfo> EnumerateDirectories(this DirectoryInfo dir, SubfolderType type) { if (type == SubfolderType.No) { yield break; } DirectoryInfo[] subDirs; try { subDirs = dir.GetDirectories(); } catch { yield break; } foreach (DirectoryInfo subDir in subDirs) { yield return(subDir); if (type == SubfolderType.This) { continue; } foreach (DirectoryInfo subSubDir in EnumerateDirectories(subDir, SubfolderType.All)) { yield return(subSubDir); } } }
public static IEnumerable <DirectoryInfo> EnumerateDirectoriesThrow(this DirectoryInfo dir, SubfolderType type) { if (type == SubfolderType.No) { yield break; } foreach (DirectoryInfo subDir in dir.GetDirectories()) { yield return(subDir); if (type == SubfolderType.This) { continue; } foreach (DirectoryInfo subSubDir in EnumerateDirectoriesThrow(subDir, SubfolderType.All)) { yield return(subSubDir); } } }
public static long GetLength(this DirectoryInfo dir, SubfolderType type) { return(EnumerateFiles(dir, type).Sum(f => f.Length)); }