Member 13499989 Ответов: 2

Как увеличить выбранные файлы?


У меня есть:
20170505001.jpg
20170505001R.тиф
20170505001F.jpg

То, что я хочу, это только увеличить:
20170505002R.тиф
20170505002F.jpg
20170505003R.тиф
20170505003F.jpg

Я не хочу, чтобы это увеличивалось: 20170505001.jpg

Что я уже пробовал:

строка[] f = System.IO.Directory.Заражен(источник);
по каждому элементу (ВАР srcPath в Ф)
{
FileInfo fileinfo = новый FileInfo(srcPath);
строки sExtension = путь.GetFileNameWithoutExtension(FileInfo может.Имя).Последний().Метод toString();
строка newFileName = fileName + sExtension + Path.GetExtension(fileinfo.Name);
строка newFilePath = Path.Объединить(каталог, имя нового файла);
System.IO.File.Copy(srcPath, newFilePath, true);
}

2 Ответов

Рейтинг:
2

BillWoodruff

Почему бы не рассмотреть возможность изменения метаданных файлов, если все, что вы хотите сделать, это нумерация версий ? Видеть: [^].

Я предполагаю, что создание новых файлов с "увеличенными" именами не является проблемой.

private List<char> acceptCodes = new List<char>{'R','F'};

private List<string> GetFilesToIncrement(string directorypath)
{
    DirectoryInfo di = new DirectoryInfo(directorypath);

    return di.EnumerateFiles("*.*", SearchOption.AllDirectories)
        .Where(fi =>
            acceptCodes.Contains
            (Path.GetFileNameWithoutExtension
                (fi.Name).Last()))
                    .Select(fl => fl.Name)
                        .ToList();
}


Рейтинг:
0

Karthik_Mahalingam

пробовать

string[] files = { "20170505001.jpg", "20170505001R.tif", "20170505001F.jpg" };
           files = files.Where(k => char.IsLetter(Path.GetFileNameWithoutExtension(k).Last())).ToArray();  //"20170505001R.tif", "20170505001F.jpg"

           List<string> lst = new List<string>();
           foreach (string file in files)
           {
               string temp = Path.GetFileNameWithoutExtension(file);
               string lastChar = temp.Last().ToString();
                 temp = temp.Remove(temp.Length - 1);
                 decimal value = decimal.Parse(temp) + 1;
                 string increamentedFileName = string.Format("{0}{1}{2}", value, lastChar, Path.GetExtension(file));
                 lst.Add(increamentedFileName);
           }

           //"20170505002R.tif", "20170505002F.jpg"