public static void LinkFiles(string rootFolder, string destination, out int exitCode, params string[] exclusions) { exitCode = 1; FileInfo[] files = new DirectoryInfo(rootFolder).GetFiles(); for (int i = 0; i < files.Length; i++) { FileInfo file = files[i]; string lower = file.Name.ToLower(); bool cont = false; for (int j = 0; j < exclusions.Length; j++) { string exc = exclusions[j]; if (lower.Contains(exc)) { cont = true; break; } } if (cont) { continue; } string relative = file.FullName.Replace(rootFolder + @"\", ""); string linkPath = Path.Combine(destination, relative); CmdUtil.MkLinkFile(file.FullName, linkPath, out exitCode); } }
public static void LinkFiles(string rootFolder, string destination, out int exitCode, string[] exclusions, string[] copyInstead) { exitCode = 1; FileInfo[] files = new DirectoryInfo(rootFolder).GetFiles(); for (int i = 0; i < files.Length; i++) { FileInfo file = files[i]; string lower = file.Name.ToLower(); bool exclude = false; for (int j = 0; j < exclusions.Length; j++) { string exc = exclusions[j]; if (lower.Contains(exc)) { // check if the file is i exclude = true; break; } } if (exclude) { continue; } for (int j = 0; j < copyInstead.Length; j++) { string copy = copyInstead[j]; if (lower.Contains(copy)) { exclude = true; break; } } string relative = file.FullName.Replace(rootFolder + @"\", ""); string linkPath = Path.Combine(destination, relative); if (exclude) { // should copy! File.Copy(file.FullName, linkPath, true); } else { CmdUtil.MkLinkFile(file.FullName, linkPath, out exitCode); } } }