Bonjour, je developpe un programme pour lequel je dois scanne mes dossiers afin de localiser des fichiers vidéo
J’aichoisis l'approche de creation de thread,afin d’éviter un souci de fige pendant la recherche au niveau du programme et de la liste contenant les fichiers
voici ou j'en suis .
j'ai un bouton qui permet de sélectionner l'emplacement des répertoires contenant les films
Voici le code qui si rapporte
ce bouton créée donc un thread qui va lancé la recherche , je pensais derrière avec un timer cloner la liste ou autre car je dois gérer la presence ou pas du fichier NFO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 private void Bemplacement_Click_1(object sender, EventArgs e) { //Creation folderbrowser FolderBrowserDialog folderDlg = new FolderBrowserDialog(); folderDlg.ShowNewFolderButton = true; // Montre le FolderBrowserDialog. DialogResult result = folderDlg.ShowDialog(); // Si le bouton selectionnez est ok > if (result == DialogResult.OK) { Trepertoire.Text = folderDlg.SelectedPath; Environment.SpecialFolder root = folderDlg.RootFolder; //Effacement de la liste emplacement = null; //lance la recherche recursive recherche = new Thread(new ThreadStart(ThreadMethod)); recherche.Start(); } }
Mais voila ou je bloque j'effectue une recherche recursive, donc j'ai modifie et allége le code de la recherche
Le souci se situe au niveau de la recursivité de la recherche, est ce que je dois cree un tread par recherche?? deja que je pense en cree deux en parallele pour gere l'extention du fichier et dans ce cas la comment les incrementer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 private void ThreadMethod() { string sdir = Trepertoire.Text; string pattern = "*.avi"; try { foreach (string f in Directory.GetFiles(sdir, pattern)) { emplacement.Add(f); } foreach (string d in Directory.GetDirectories(sdir)) { //VOILA LE PROBLEME DirSearch(d, pattern); } } catch (System.Exception excpt) { MessageBox.Show(excpt.Message); } }
merci de vos reponse
Partager