LISTER UN REPERTOIRE

Signaler
Messages postés
14
Date d'inscription
dimanche 12 mars 2006
Statut
Membre
Dernière intervention
11 février 2007
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
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

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
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# 
Messages postés
14
Date d'inscription
dimanche 12 mars 2006
Statut
Membre
Dernière intervention
11 février 2007

Merci MorpionMx pour ta réponse.
Ok pour la partie listing mais pour mettre tous ceci dans une bdd access?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
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# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
J'ai oublié l'ouverture de la connexion ;)

Rajoute connex.Open(); avant le foreach

Mx
MVP C#