mercoledì 2 aprile 2025

C# classe per gestire i file vcf

Nel caso che dobbiamo gestire i file vcf, file dei contatti di Microsoft Outlook, tramite la creazione di una classe possiamo gestire il singolo contatto oppure tutti i file presenti in una cartella, il tutto nel linguaggio di programmazione C#.


Di seguito si riporta il frammento di codice della classe per la gestione dei file vcf.

C#

public class ContattiVcf

    {

        public string Nome { get; set; }

        public string Email { get; set; }

        public string Note { get; set; }

        public   ContattiVcf(string percorsoNomeFile)

        {

            string[] lines = File.ReadAllLines(percorsoNomeFile);

            if (lines.Length >= 4)

            {

                Nome = lines.Where(p => p.Contains("FN:")).FirstOrDefault();

                Nome = Nome?.Replace("FN:", "");

                Email = lines.Where(p => p.Contains("EMAIL;PREF;INTERNET:")).FirstOrDefault();

                Email =  Email?.Replace("EMAIL;PREF;INTERNET:", "") ;

                Note = lines.Where(p => p.Contains("NOTE;ENCODING=QUOTED-PRINTABLE:")).FirstOrDefault();

                Note = Note?.Replace("NOTE;ENCODING=QUOTED-PRINTABLE:", "");

            }

        }

         public List<ContattiVcf> Contatti(string percorsoFilesVcf)

        {

             List<ContattiVcf> returnContatti = new List<ContattiVcf>();

            try

            {

                 foreach (string fileVcs in Directory.EnumerateFiles(percorsoFilesVcf))

                {

                     ContattiVcf contatto = new ContattiVcf(fileVcs);

                    returnContatti.Add(contatto);

                 }

 

            }

            catch (Exception ex)

            {

                 returnContatti = null;

            }

             return returnContatti;

         }

    }



Di seguito si riporta un frammento di codice di utilizzo.

C#

string percorso = @"C:\Downloads\contatti\contatti\Nomefile.vcf";

                string soloPercorso = @"C:\Downloads\contatti\contatti\";

                ContattiVcf contatto = new ContattiVcf(percorso);

                Console.Write(contatto.Nome);

                var Contatti = contatto.Contatti(soloPercorso);




Nessun commento: