LISTER UN REPERTOIRE

cs_nabil88 Messages postés 14 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 11 février 2007 - 1 nov. 2006 à 18:28
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 3 nov. 2006 à 12:42
Bonsoir à tous,

Je débute en C#, j'ai programmé une application en VB avec liaison bdd access. L'application me permet de cataloguer des cd, c-à-d qu'à l'insertion du cd, celui-ci est scruter et le nom des répertoire et des fichiers contenu sont stockés dans une base access. J'aimerai pouvoir créer un équivalent en C#. Donc le premier probleme que je rencontre est que je ne sais pas comment lister le contenu d'un repertoire dans une bdd access.
Est-ce que quelqu'un saurait m'aider?

Merci d'avance.

4 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
1 nov. 2006 à 19:29
Salut

Pour lister les repertoires  tu peux utiliser cette méthode

string[] files =
Directory.GetFiles(
@"tonChemin",
"*.*",
SearchOption.AllDirectories);
Par contre si tu tombes sur un repertoire dont l'accès est non autorisé,  une exception sera levée et tu ne pourra pas continuer le listing.

Le cas échéant, tu peux utiliser ce bout de code
<hr />public
static
void ListDir(
string sourceDir,
ref
List<
string> files)
{

   DirectoryInfo dir =
new
DirectoryInfo(sourceDir); 

   if (dir.Exists)
   {

      try
      {

         foreach (
string d
in
Directory.GetDirectories(sourceDir))
            ListDir(d,
ref files);
      }

      catch (
UnauthorizedAccessException uae){}

      foreach (
string file
in
Directory.GetFiles(sourceDir))
         files.Add(file);
    }
}
<hr />
Et appeller la méthode ainsi :

List<
string> files =
new
List<
string>();
ListDir(
@"tonChemin",
ref files);

Mx
MVP C# 
0
cs_nabil88 Messages postés 14 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 11 février 2007
2 nov. 2006 à 20:08
Merci MorpionMx pour ta réponse.
Ok pour la partie listing mais pour mettre tous ceci dans une bdd access?
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
3 nov. 2006 à 12:28
Salut,

Sans la gestion des exceptions, ca doit donner quelquechose comme ca:

<hr />

string[] fichiers =
Directory.GetFiles(
@"tonChemin",
"*.*",
SearchOption.AllDirectories);

using (
OleDbConnection connex =
new
OleDbConnection(
"ChaineDeConnexion"))


   string rq =
"INSERT INTO TaTable(TonChamp) values (@valeur)";

   OleDbCommand cmd =
new
OleDbCommand(rq, connex);
   
foreach (
string s
in fichiers)
   {
      cmd.Parameters.Clear();
      cmd.Parameters.AddWithValue(
"@valeur", s);
      cmd.ExecuteNonQuery();
   }
   cmd.Dispose();
}
<hr />

Mx
MVP C# 
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
3 nov. 2006 à 12:42
J'ai oublié l'ouverture de la connexion ;)

Rajoute connex.Open(); avant le foreach

Mx
MVP C# 
0
Rejoignez-nous