Help to convert a code to D

Alexandre alebencz at gmail.com
Mon Aug 26 06:07:41 PDT 2013


Hi :)

I'm starting with D language... and, I try to convert a C# code 
to D...
So, my C# code, I get file informations, and, I create folders 
with all days of month of specific year...

So, that is my C# code...

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;

namespace Organizador
{
     class Organiza
     {
         private string[] MesesDoAno =
         {
           "Janeiro", "Fevereiro",
           "Marco", "Abril",
           "Maio", "Junho",
           "Julho", "Agosto",
           "Setembro", "Outubro",
           "Novembro", "Dezembro"
         };

         private string DirReceb = string.Empty;

         public Organiza()
         {
             CriaDiretorios();
             MoveArquivos();
         }

         private void CriaDiretorios()
         {
             DirReceb = "RECEBIDOS\\" + 
DateTime.Now.Year.ToString() + "\\";
             // Cria o diretorio "root"
             if (!Directory.Exists(DirReceb))
                 Directory.CreateDirectory(DirReceb);

             // cria os diretorios dos meses do ano
             for (int i = 0; i < 12; i++)
                 if (!Directory.Exists(DirReceb + MesesDoAno))
                     Directory.CreateDirectory(DirReceb + 
MesesDoAno[i]);

             // cria os diretorios com os dias dos meses e ano
             for (int i = 1; i <= 12; i++)
             {
                 string dia;
                 string mes;
                 var ano = DateTime.Now.Year;
                 var DiasDoMes = 
DateTime.DaysInMonth(DateTime.Now.Year, i);

                 if (i < 10)
                     mes = "0" + i.ToString();
                 else
                     mes = i.ToString();

                 for (int j = 1; j <= DiasDoMes; j++)
                 {
                     if (j < 10)
                         dia = "0" + j.ToString();
                     else
                         dia = j.ToString();

                     string StrDia = string.Format("{0}-{1}-{2}", 
dia, mes, ano);
                     string StrData = DirReceb + MesesDoAno[i-1] + 
"\\" + StrDia;

                     if (!Directory.Exists(StrData))
                         Directory.CreateDirectory(StrData);
                 }
             }
         }

         private void MoveArquivos()
         {
             string[] filters = new[] { "*.REM", "*.RET" };

             for (int i = 0; i < 2; i++)
             {
                 DirectoryInfo di = new 
DirectoryInfo(Directory.GetCurrentDirectory());
                 var files = di.GetFiles(filters[i]);

                 foreach (var fi in files)
                 {
                     var mes = fi.CreationTime.Month;
                     var strdt = 
fi.CreationTime.ToString("dd-MM-yyyy");

                     string DestDir = DirReceb + MesesDoAno[mes - 
1] + "\\" + strdt + "\\" + fi.Name;

                     File.Move(fi.Name, DestDir);
                 }
             }
         }
     }

     class Program
     {
         static void Main(string[] args)
         {
             try
             {
                 new Organiza();
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
         }
     }
}


So, to create directory and move files... I get the documentation 
on that page: http://dlang.org/phobos/std_file.html

But, I don't know, How I can get the file information and what is 
the best way to create the directory's, so, I need some help :)

I appreciate the help :)


More information about the Digitalmars-d mailing list