public static bool OverwriteFile(string installPath, string relFileName, string src, IEnumerable <string> dontOverwriteFiles, OverwriteFilesInfo overwriteControl) {
public static OverwriteFilesInfo CheckOverwriteFiles(string targetDirectory, string projectDir, bool targetDirEmpty) { OverwriteFilesInfo info = new OverwriteFilesInfo(); if (!targetDirEmpty) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); string path = Path.Combine(targetDirectory, "UnityOverwrite.txt"); if (!File.Exists(path)) { info.KeepAll = true; return(info); } foreach (string str2 in File.ReadAllLines(path)) { if ((str2.Trim() != "") && !str2.StartsWith("#")) { if (str2.Equals("overwrite-all", StringComparison.InvariantCultureIgnoreCase)) { info.OverwriteAll = true; return(info); } if (str2.Equals("keep-all", StringComparison.InvariantCultureIgnoreCase)) { info.KeepAll = true; return(info); } int index = str2.IndexOf(':'); if ((index >= 0) && (str2.Length != (index + 1))) { string key = str2.Substring(0, index); string str4 = str2.Substring(index + 1).Trim(); if (str4 != "") { dictionary.Add(key, str4); } } } } string prefix = FileUtil.RemovePathPrefix(projectDir, targetDirectory); foreach (KeyValuePair <string, string> pair in dictionary) { if (pair.Value.Equals("overwrite", StringComparison.InvariantCultureIgnoreCase)) { info.DoOverwrite.Add(FileUtil.RemovePathPrefix(pair.Key, prefix), true); } else { string str6 = Path.Combine(targetDirectory, pair.Key); if (File.Exists(str6)) { string str7 = CalculateMD5ForFile(str6); if (str7.Equals(pair.Value, StringComparison.InvariantCultureIgnoreCase)) { info.DoOverwrite.Add(pair.Key, false); } else { info.UserModified.Add(FileUtil.RemovePathPrefix(pair.Key, targetDirectory)); } info.Hashes.Add(pair.Key, str7); } } } } return(info); }