Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Уменьшение строк кода для преобразования даты и времени изменения файла в строку (http://forum.oszone.net/showthread.php?t=343615)

tumanovalex 10-01-2020 21:58 2904439

Уменьшение строк кода для преобразования даты и времени изменения файла в строку
 
Мне хотелось бы в конечном итоге переименовать файлы так, чтобы дата и время изменения файла стояли в начале имени файла. Тогда файлы на диске я могу выстроить по дате. Код для определения даты изменения файла и создания строки с этой датой
Код:

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Collections.Generic; // List
using System.Collections;

namespace EsEngWord
{
  class Program
  {

    static void ShowMes(string strMes)
    {
      Console.WriteLine(strMes);
      Console.WriteLine("\nПрограмма завершила работу. Нажмите любую клавишу\n");
      Console.ReadKey();
      Environment.Exit(1);
    }

    public static void Main()
          {
      string sY, sM, sD, sDt, sH, sMin, sS, sTm, sFile;
      sFile = "IMG_0003.JPG";
      Console.WriteLine(File.GetLastWriteTime(sFile));
      DateTime dt = File.GetLastWriteTime(sFile);
      sY =  dt.Year.ToString();
      sM =  dt.Month.ToString();
      sD = dt.Day.ToString();
      sDt = sY + sM + sD;
      Console.WriteLine(sDt);
      if(sM.Length == 1)
        sM = "0" + sM;
      if (sD.Length == 1)
        sD = "0" + sD;
      sDt = sY + sM + sD;
      sH = dt.Hour.ToString();
      sMin = dt.Minute.ToString();
      sS = dt.Second.ToString();
      sTm = sH + sMin + sS;
      Console.WriteLine(sTm);
      if (sH.Length == 1)
        sH = "0" + sH;
      if (sMin.Length == 1)
        sMin = "0" + sMin;
      if (sS.Length == 1)
        sS = "0" + sS;
      sTm = sH + sMin + sS;
      string sDtTm = sDt + "_" + sTm;
      Console.WriteLine(sDtTm);
      ShowMes("");
  }
  } // class
} //  namespace

работает, но очень много строк кода. Я имею в виду не тестовый вывод на консоль, а проверку строк (элементов даты и времени изменения файла) для добавления в случае необходимости 0. Можно ли уменьшить код для проведения проверок строки и добавления 0 в случает строки с одним символом? Проект разместил по ссылке https://yadi.sk/d/p3EselRjPGXb_Q - из-за картинки он занимает 2,5 Мб.

iglezz 10-01-2020 22:42 2904449

tumanovalex,
Код:

DateTime dt = File.GetLastWriteTime(sFile);
string newDateString = dt.ToString("yyyyMMdd_HHmmss");


Iska 10-01-2020 23:00 2904456

Цитата:

Цитата tumanovalex
Тогда файлы на диске я могу выстроить по дате. »

Вы и так можете «выстроить их по дате» создания или последней модификации, используя сортировку.


Время: 00:02.

Время: 00:02.
© OSzone.net 2001-