Задать вопрос
@iXelper

Как соотнести имена файлов с одинаковыми датами?

ДАНО: 3 строковые переменные с датами , 3 строковые переменные с названием файла

-Пример:
// переменные с датой
string dateOne = "09.08.2018  13:04:00"
string dateTwo = "11.05.2018  11:03:00"
string dateThree = "16.07.2018  13:28:00"
// переменные с названием файла
string nameOne = "nameFile_1301_1602__2018_08_09__13_04_07_990"
string nameTwo = "nameFile_1302_1602__2018_05_11__11_03_40_910"
string nameThree = "nameFile_1302_1602__2018_07_16__13_28_12_950"


ЗАДАЧА: Соотнести даты с названием файла (в названии файла записана дата и время "...2018_08_09__13_04...").
Даты и название файла в переменных МЕНЯЮТСЯ ! они не постоянные.

ВОПРОС: как и каким способом это можно реализовать ?

в ходе проверки условий ДОЛЖНО ПОЛУЧИТСЯ ТАК:
string otvet = "Дата: " + dateOne + "Файл с этой датой: " + nameOne;
  • Вопрос задан
  • 138 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@lvv85
static void Main(string[] args)
        {
            string[] arrDate = { "09.08.2018  13:04:07"
                                , "11.05.2018  11:03:00"
                                , "16.07.2018  13:28:12" };

            string[] arrFileName = { "nameFile_1301_1602__2018_08_09__13_04_07_990"
                                    , "nameFile_1302_1602__2018_05_11__11_03_40_910"
                                    , "nameFile_1302_1602__2018_07_16__13_28_12_950" };

            foreach (var strDate in arrDate)
            {
                var pattern = GetSearchPattern(strDate);
                if (pattern!=null)
                {
                    var fileName = arrFileName.FirstOrDefault(f=>f.Contains(pattern));

                    if (fileName == null) continue;

                    string otvet = "Дата: " + strDate + "Файл с этой датой: " + fileName;

                    Console.WriteLine(otvet);
                }
            }
        }

        static string GetSearchPattern(string strDate)
        {
            DateTime date = new DateTime();

            if (!DateTime.TryParse(strDate, out date)) return null;

            return date.ToString("__yyyy_MM_dd__HH_mm_ss_");
        }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Я бы решал грубо и в лоб.
Даты привести к типу даты и отформатировать дату к виду "yyyy_MM_dd__HH_mm".
А затем искать подстроку в названии файла
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы