实际上我需要在文件上应用一些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