protected override void OnDelete(AbsPath path) { if (path.Extension == "" || allowedExtensions.Contains(path.Extension)) { RelPath relPath = path.ReplaceAsRelativePath(srcFolder); Console.WriteLine($"delete '{relPath}'"); AbsPath destPath = destFolder.Combine(relPath); destPath.Delete(); } }
protected override void OnCreate(AbsPath path) { if (path.Extension == "" || allowedExtensions.Contains(path.Extension)) { RelPath relPath = path.ReplaceAsRelativePath(srcFolder); AbsPath destPath = destFolder.Combine(relPath); Console.WriteLine($"create '{relPath}' (from '{path.PathStr}' to '{destPath.PathStr}')"); path.CopyToFiltered(destPath, allowedExtensions); } }
protected override void OnRename(AbsPath oldPath, AbsPath newPath) { // todo: test oldPath.Extension == "" for directory? if ((oldPath.Extension == "" && newPath.Extension == "") || (allowedExtensions.Contains(oldPath.Extension) && allowedExtensions.Contains(newPath.Extension))) { RelPath relOldPath = oldPath.ReplaceAsRelativePath(srcFolder); RelPath relNewPath = newPath.ReplaceAsRelativePath(srcFolder); AbsPath destOldPath = destFolder.Combine(relOldPath); AbsPath destNewPath = destFolder.Combine(relNewPath); Console.WriteLine($"rename '{relOldPath}' as '{relNewPath}' (from '{destOldPath}' to '{destNewPath}')"); destOldPath.RenameFullPath(destNewPath.PathStr); } }
protected override void OnChange(AbsPath path) { if (allowedExtensions.Contains(path.Extension)) { RelPath relPath = path.ReplaceAsRelativePath(srcFolder); Console.WriteLine($"change '{relPath}'"); AbsPath destPath = destFolder.Combine(relPath); if (path is FilePath srcFile) { if (destPath.Exists) { destPath.Delete(); } srcFile.CopyToFiltered(destPath, allowedExtensions); } } }