Как сравнить значение выбора даты и времени с некоторым именем папки - PullRequest
1 голос
/ 11 октября 2011

У меня есть резервные копии файлов в папке, путь такой: C: \ Folder

файлы выглядят следующим образом: enter image description here

имя файла, как это ... 20111011 означает сегодняшнюю дату 095523 означает время

и у меня есть средство выбора даты и времени, и у меня есть кнопка, когда пользователь выбирает значение в средстве выбора даты и выбирает кнопку

Мне нужно сравнить значение выбора даты и времени с именем файла, хранящегося в этой папке, а затем, если значение выбора даты и времени совпадает с частью имени папки (backup-{this is part}) я хочу извлечь zip-файл в данную папку. ..

как я могу сравнить значение выбора даты и времени с именем папки и извлечь файлы по указанному пути ....

Ответы [ 5 ]

2 голосов
/ 11 октября 2011

In .net Directory.GetFiles метод, используемый для получения файлов по определенному пути.

Ниже кода, указанного в ссылке, вносите изменения в цикл foreach по мере необходимости. Этот цикл дает вам имя файла, и вы можете сравнить его.

public static void ProcessDirectory(string targetDirectory) 
{
    // Process the list of files found in the directory.
    string [] fileEntries = Directory.GetFiles(targetDirectory);
    foreach(string fileName in fileEntries)
      Do work here which you need.
}

Проверьте эту ссылку на значение datetimepicker

1 голос
/ 11 октября 2011

Прежде всего, вам нужно правильно установить формат даты и времени DateTimePicker , чтобы выбрать дату и время.

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM dd yyyy hh mm ss";  

Далее, я думаю, вам нужно создать имя файла, используя DateTimePicker.Value. Посмотрите на здесь , вы можете ToString DateTime в нужный вам формат.

Например ...

DateTime dt = dateTimePicker1.Value;
string fileName = string.Format("backup-{0}",dt.ToString(yyyyMMddHHmmss));

Не уверен насчет вашего формата времени. Если это 12 часов, используйте «H» и «HH» в течение 24 часов. Посмотрите здесь для большего количества примеров. Остальное не составит труда ...

0 голосов
/ 11 октября 2011

Просто "хакерский" - но это работает.

        var dateToParse = "20111011095323";
        var date = new DateTime(int.Parse(dateToParse.Substring(0, 4)),
                                int.Parse(dateToParse.Substring(4, 2)),
                                int.Parse(dateToParse.Substring(6, 2)),
                                int.Parse(dateToParse.Substring(8, 2)),
                                int.Parse(dateToParse.Substring(10, 2)),
                                int.Parse(dateToParse.Substring(12, 2)));
0 голосов
/ 11 октября 2011

Вы можете попробовать что-то вроде этого:

DateTime dateSelected = <date coming from the picker>;
string fileRequested = string.Format("backup-{0}{1}{2}{3}{4}{5}",dateSelected.Year,dateSelected.Month,dateSelected.Day,dateSelected.Hour,dateSelected.Minute,dateSelected.Second;

Затем вы можете использовать ответ от Emaad, чтобы получить работу с файлом.

0 голосов
/ 11 октября 2011

Вы можете прочитать имена файлов, используя System.IO.File

Когда вы прочитали их, вы можете извлечь их даты, используя DateTime.ParseExact для анализадата и время файла.

И тогда вам просто нужно сравнить дату и время файла со значением вашего средства выбора даты.

...