将Switch-case应用于整个目录,文件名作为参数

时间:2017-07-05 07:38:59

标签: c# sql-server switch-statement

实际上我需要在文件上应用一些cmd args将它们转换为DOS然后将它们推送到我的数据库,我找到了一个文件的好参数,但现在我需要使用Foreach来检查我的目录中的每个文件使用switch case在13种类型的文件中的每一种中应用命令。如果你有一些想法,这是我的代码,我有点迷失。我的开关似乎很好,但我不知道如何获取文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.IO;
using Microsoft.SqlServer;
using Microsoft.VisualBasic;
using Microsoft.CSharp;
using System.Diagnostics;
using System.Data;

namespace IMR
{
    class ProgramCSV // Début Programme 
    {
        // Fonction Main 
        static void Main(string[] args)
        {
            DirectoryInfo dir = new DirectoryInfo("U:/FichiersINPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101/");

            Console.WriteLine("Recherche de fichier .csv :"); //Fonction de recherche de tout les fichiers .csv
            foreach (var fi in dir.EnumerateFiles("*.csv", SearchOption.AllDirectories)) // On précise qu'on veut tout les répértoires
            {
                Console.WriteLine(fi.Name);
                Console.WriteLine(DateTime.Now);
            }

            // On apelle les deux .exe dans notre main
            Integration c = new Integration();
            c.UnixToDos();
            c.CsvToSql();
            Console.WriteLine(" L'intégration a été effectuée avec succés à la base de données ");
            Console.ReadKey();
        }
    }

    public class Integration
    {
        public void UnixToDos() // la fonction permettant de convertir de Unix à Dos
        {
            string strCmdText;

            DirectoryInfo dir = new DirectoryInfo("U:/FichiersINPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101/");
            Console.WriteLine("Recherche de fichier .csv :"); // Fonction de recherche de tout les fichiers .csv

            foreach (var Fi in dir.EnumerateFiles("*.csv", SearchOption.AllDirectories)) // On précise qu'on veut tout les répértoires
            {
                switch (Fi) // Switch permettant de traiter les fichiers en les convertissant de Unix à Dos               
                {
                case "*1_PM.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);    
                    break;

                case "*2_PM_EVT.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*3_PP.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*4_PP_EVT.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*5_rep.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*6_rep_nouveau_modifie_EVT.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*7_rep_partant_EVT.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*8_ets.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*9_ets_nouveau_modifie_EVT.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*10_ets_supprime_EVT.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*11_obs.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*12_actes.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;

                case "*13_comptes_annuels.csv":
                    Console.WriteLine("Fichier sur les personnes morales ");
                    strCmdText = ("/C Unix2Dos " + Fichier);
                    System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                    break;
                }

                Console.WriteLine("Conversion effectuée !");
                Console.ReadKey();
            }
        }

        public void CsvToSql() // la méthode permettant d'entrer les données du CSV à la table SQL
        {
            string strCmdText;

            DirectoryInfo dir = new DirectoryInfo("U:/FichiersINPI/IMR_Donnees_Saisies/tc/flux/2017/06/01/0101/");

            Console.WriteLine("Recherche de fichier .csv :"); // Fonction de recherche de tout les fichiers .csv

            foreach (var Fichier in dir.EnumerateFiles("*.csv", SearchOption.AllDirectories)) // On précise qu'on veut tout les répértoires
            switch (Fichier) // Boucle Switch pour traiter les 13 types de fichier et les envoyer dans leurs tables respectives
            {
            case"*1_PM.csv":    // Personnes morale
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..PM /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*2_PM_EVT.csv": // Evenement concernant les personnes morales
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..PM_EVT /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*3_PP.csv":  // Personnes physiques
                Console.WriteLine("Fichier sur les personnes morales");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..PP /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);    
                break;

            case"*4_PP_EVT.csv": // Evenement concernant les personnes physiques
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..PP_EVT /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*5_rep.csv":  // Représentants
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Rep /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*6_rep_nouveau_modifie_EVT.csv": // Evenement concernant la modification des données d'un ou plusieurs représentants
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Rep_new /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*7_rep_partant_EVT.csv": // Fichier traitant du départ d'un représentant
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Rep_supression /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*8_ets.csv":  // Etablissements
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Ets /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*9_ets_nouveau_modifie_EVT.csv": // Modification relative à un ou plusieurs  etablissement(s)
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Ets_modification /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*10_ets_supprime_EVT.csv": // Suppression d'un ou de plusieurs établissement(s)
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Ets_supression /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*11_obs.csv":  // Observations générales
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Obs /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*12_actes.csv": // Actes Généraux
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Acte /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;

            case"*13_comptes_annuels.csv": // Fichier relatif au(x) compte(s) annuel(s)
                Console.WriteLine("Fichier sur les personnes morales ");
                strCmdText = ("/C Csv2Sql_new " + Fichier + " IMR_INPI..Compte_annuel /force ");
                System.Diagnostics.Process.Start("CMD.exe", strCmdText);
                break;
            }

            Console.WriteLine("Intégration effectuée sur les 13 types de fichiers !"); // Confirmation du traitement des 13 types de fichiers reçus
            Console.ReadKey();
        }

        // Instruction synchrone : Eviter la confusion lors de la consultations des logs
        //faire des if pour push les 13 types d'objets sur les 13 tables différentes
        //Possibilité d'argument :  "Unix2Dos" + Filename + " Csv2Sql_new" + Filename + "IMR_INPI..ID fin de fichier /force "

        //Prototype de fonction de traitement 
        //  if fi = "*.csv"
        // Lancer programme " Unix2Dos"
        // if fi = "PM.csv"
        // if fi = "PM_EVT.csv"
        // if fi = "PP.csv"
        // if fi = "PP_EVT.csv"   
        // if fi = "ets.csv"
        // if fi = "ets_nouveau_modifie.csv"
        // if fi = "ets_supprime_EVT.csv"
        // if fi = "rep.csv"
        // if fi = "rep_nouveau_modifie.csv"
        // if fi = "rep_partant.csv"
        // if fi = "obs.csv"
        // if fi = "actes.csv"
        // if fi = "comptes_annuels.csv"  
        // Lancer programme " Csv2Sql_new"
        // Verifier qu'on est connecter à la BDD et à la bonne table
        //Trouver un moyen d'éviter les doublons
        //Tester Un premier dossier avant de lancer le tout
        //Se Renseigner sur les tests unitaires */

        //On attends que l'utilisateur utilise une touche pour arrêter le processus    
    }
}

// Fin Program

0 个答案:

没有答案