using System;
using System.Linq;
using System.Collections.Generic;
using System.IO;
public class Test
{
public static string AddIncrementFileNameSuffix(string path, IList<string> paths, string separator)
{
int num = 0;
string[] tokens = path.Split(new[] { separator }, StringSplitOptions.None);
string strNum = tokens.Last();
int.TryParse(strNum, out num);
string fileName = path;
string dir = Path.GetDirectoryName(path);
string ext = Path.GetExtension(path);
var dups = paths.Where(n => n.Equals(fileName, StringComparison.OrdinalIgnoreCase));
while (dups.Any())
{
fileName = Path.Combine(dir, tokens.First() + separator + ++num + ext);
}
paths.Add(fileName);
return fileName;
}
public static void Main()
{
var SourceFiles = new List<String>() { @"C:\Temp\test_1", @"C:\Temp\test_2" };
var lsNameList = new List<String>() { @"C:\Temp\test_1", @"C:\Temp\test_2", @"C:\Temp\test_3" };
IEnumerable<String> newPaths = SourceFiles
.Select(fn => AddIncrementFileNameSuffix(fn, lsNameList,"_"));
Console.Write(string.Join(Environment.NewLine, newPaths.ToArray()));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CnVzaW5nIFN5c3RlbS5JTzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgICAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBBZGRJbmNyZW1lbnRGaWxlTmFtZVN1ZmZpeChzdHJpbmcgcGF0aCwgSUxpc3Q8c3RyaW5nPiBwYXRocywgc3RyaW5nIHNlcGFyYXRvcikKICAgICAgICB7CiAgICAgICAgICAgIGludCBudW0gPSAwOwogICAgICAgICAgICBzdHJpbmdbXSB0b2tlbnMgPSBwYXRoLlNwbGl0KG5ld1tdIHsgc2VwYXJhdG9yIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5Ob25lKTsKICAgICAgICAgICAgc3RyaW5nIHN0ck51bSA9IHRva2Vucy5MYXN0KCk7CiAgICAgICAgICAgIGludC5UcnlQYXJzZShzdHJOdW0sIG91dCBudW0pOwogICAgICAgICAgICBzdHJpbmcgZmlsZU5hbWUgPSBwYXRoOwogICAgICAgICAgICBzdHJpbmcgZGlyID0gUGF0aC5HZXREaXJlY3RvcnlOYW1lKHBhdGgpOwogICAgICAgICAgICBzdHJpbmcgZXh0ID0gUGF0aC5HZXRFeHRlbnNpb24ocGF0aCk7CgogICAgICAgICAgICB2YXIgZHVwcyA9IHBhdGhzLldoZXJlKG4gPT4gbi5FcXVhbHMoZmlsZU5hbWUsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbElnbm9yZUNhc2UpKTsKICAgICAgICAgICAgd2hpbGUgKGR1cHMuQW55KCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gUGF0aC5Db21iaW5lKGRpciwgdG9rZW5zLkZpcnN0KCkgKyBzZXBhcmF0b3IgKyArK251bSArIGV4dCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHBhdGhzLkFkZChmaWxlTmFtZSk7CiAgICAgICAgICAgIHJldHVybiBmaWxlTmFtZTsKICAgICAgICB9CiAgICAKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKICAgICAgICB2YXIgU291cmNlRmlsZXMgPSBuZXcgTGlzdDxTdHJpbmc+KCkgeyBAIkM6XFRlbXBcdGVzdF8xIiwgQCJDOlxUZW1wXHRlc3RfMiIgfTsKICAgICAgICB2YXIgbHNOYW1lTGlzdCA9IG5ldyBMaXN0PFN0cmluZz4oKSB7IEAiQzpcVGVtcFx0ZXN0XzEiLCBAIkM6XFRlbXBcdGVzdF8yIiwgQCJDOlxUZW1wXHRlc3RfMyIgfTsKCgogICAgICAgIElFbnVtZXJhYmxlPFN0cmluZz4gbmV3UGF0aHMgPSBTb3VyY2VGaWxlcwogICAgICAgICAgICAgICAgLlNlbGVjdChmbiA9PiBBZGRJbmNyZW1lbnRGaWxlTmFtZVN1ZmZpeChmbiwgbHNOYW1lTGlzdCwiXyIpKTsKCiAgICAgICAgQ29uc29sZS5Xcml0ZShzdHJpbmcuSm9pbihFbnZpcm9ubWVudC5OZXdMaW5lLCBuZXdQYXRocy5Ub0FycmF5KCkpKTsKCX0KfQ==