public bool PreVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { if (_configuration.Exclude.Contains(dirInfo.Name)) { return(false); } return(true); }
public bool PostVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { if (dirInfo.Exists) { dirInfo.Delete(); } return(true); }
public bool Visit(IDirectoryWalkerContext context, FileInfo fileInfo) { if (fileInfo.Exists) { fileInfo.Delete(); } return(true); }
public bool PreVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { if (SymbolicLinkHelper.IsSymbolicLink(dirInfo)) { dirInfo.Delete(); return(false); } return(true); }
public bool Visit(IDirectoryWalkerContext context, FileInfo fileInfo) { Console.WriteLine("Visit: " + fileInfo.FullName); var equalFullName = FileSystemInfoFullNames[0] == fileInfo.FullName; if (equalFullName) { FileSystemInfoFullNames.RemoveAt(0); } return(equalFullName); }
public bool PostVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { Console.WriteLine("PostVisit: " + dirInfo.FullName); var equalFullName = FileSystemInfoFullNames[0] == dirInfo.FullName; if (equalFullName) { FileSystemInfoFullNames.RemoveAt(0); } return(equalFullName); }
public bool PostVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { if (IsPlaceHolderNeeded(context, dirInfo)) { var placeHolderFile = CommandHelper.CreatePlaceHolder(dirInfo, _configuration); if (null != placeHolderFile) { context.VisitedFiles.Add(placeHolderFile.FullName, placeHolderFile); } } else { var placeHolderFile = CommandHelper.DeletePlaceHolder(dirInfo, _configuration); if (null != placeHolderFile) { context.VisitedFiles.Remove(placeHolderFile.FullName); } } return(true); }
public bool PreVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { Console.WriteLine("PreVisit: " + dirInfo.FullName); return(true); }
public bool PreVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { if (_configuration.Exclude.Contains(dirInfo.Name)) { return(false); } var placeHolderFile = new FileInfo(Path.Combine(dirInfo.FullName, _configuration.PlaceHolderName)); if (!placeHolderFile.Exists) { return(true); } foreach (var subDirInfo in dirInfo.GetDirectories()) { try { if (!_configuration.DryRun) { subDirInfo.Delete(true); } if (_configuration.Short) { Logger.Log(Logger.LogType.Info, subDirInfo.FullName, true); } else if (_configuration.Verbose) { Logger.Log(Logger.LogType.Info, string.Format("Deleted directory: '{0}'", subDirInfo.FullName)); } } catch (Exception ex) { Logger.Log(Logger.LogType.Warn, string.Format("Deletion of directory '{0}' failed: {1}", subDirInfo.FullName, ex.Message)); } } foreach (var fileInfo in dirInfo.GetFiles()) { try { if (fileInfo.FullName == placeHolderFile.FullName) { if (_configuration.Verbose) { Logger.Log(Logger.LogType.Info, string.Format("Skipped placeholder: '{0}'", fileInfo.FullName)); } continue; } if (!_configuration.DryRun) { fileInfo.Delete(); } if (_configuration.Short) { Logger.Log(Logger.LogType.Info, fileInfo.FullName, true); } else if (_configuration.Verbose) { Logger.Log(Logger.LogType.Info, string.Format("Deleted file: '{0}'", fileInfo.FullName)); } } catch (Exception ex) { Logger.Log(Logger.LogType.Warn, string.Format("Deletion of file '{0}' failed: {1}", fileInfo.FullName, ex.Message)); } } return(false); }
public bool Visit(IDirectoryWalkerContext context, FileInfo fileInfo) { return(true); }
public bool PostVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { return(true); }
private bool MustVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { return(!_configuration.Exclude.Contains(dirInfo.Name)); }
private bool IsPlaceHolderNeeded(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { var files = dirInfo.GetFiles(); // If there is more than one file we do not need a placeholder. if (files.Length > 1) { return(false); } // If there are subdirectories we check if any of them will be walked, in that case we do not need a placeholder. foreach (DirectoryInfo dir in dirInfo.GetDirectories()) { if (MustVisit(context, dir)) { return(false); } } // Here we know that there is 0 or 1 file and subdirectories that are not going to be walked (special directories, excluded ones) if (files.Length == 0) { // At this point there are no files and no tracked subdirectories, so we need a placeholder. return(true); } // At this point there is exactly one file. If it is a placeholder we actually need one. var placeHolderFile = new FileInfo(Path.Combine(dirInfo.FullName, _configuration.PlaceHolderName)); return(placeHolderFile.Exists); /* * foreach (FileSystemInfo visitedFileSystemInfo in context.VisitedFileSystemInfos) * { * string visitedName = visitedFileSystemInfo.FullName; * if (visitedName.Length <= dirName.Length || !visitedName.StartsWith(dirName)) * continue; * * // At this point there is either a file in a sub-directory, * // or in the current directory (dirInfo). * * // If the already visited file is in a sub-directory, * // then no placeholder is needed for the current directory. * var parentDir = PathUtil.GetParent(visitedFileSystemInfo); * if (parentDir.FullName.Length > dirName.Length) * return false; * * // The already visited file is in the current directory. * // So increase number of found candidates. ++foundCandidateFiles; * // If there are more than one file we know we do not need a placeholder. * if (foundCandidateFiles > 1) * return false; * } * * if (1 == foundCandidateFiles) * { * // At this point there is exactly one file. If it is a placeholder we actually need one. * var placeHolderFile = new FileInfo(Path.Combine(dirInfo.FullName, _configuration.PlaceHolderName)); * return placeHolderFile.Exists; * } * * // At this point there is no file or subdirectory, so we need a placeholder. * return true; */ }
public bool PreVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { return(MustVisit(context, dirInfo)); }
public bool PostVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { Console.WriteLine("PostVisit: " + dirInfo.FullName); return(FileSystemInfoFullNames.Remove(dirInfo.FullName) && (StopWalkingAfterPostVisitDirectoryFullName != dirInfo.FullName)); }
public bool Visit(IDirectoryWalkerContext context, FileInfo fileInfo) { Console.WriteLine("Visit: " + fileInfo.FullName); return(FileSystemInfoFullNames.Remove(fileInfo.FullName)); }
public bool PostVisit(IDirectoryWalkerContext context, DirectoryInfo dirInfo) { CommandHelper.DeletePlaceHolder(dirInfo, _configuration); return(true); }