Rechercher un fichier sur son ordinateur depuis un logiciel

Signaler
-
Messages postés
19
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
29 juin 2013
-
Bonjour,
Pour un de mes logiciels, j'aimerais intégré une barre de recherche pour rechercher les fichiers présents sur un disque dur, tout en restant sur l'application (qu'il n'y ait pas une fenêtre de recherche Windows Explorer qui s'ouvre) en ouvrant une boîte de dialogue: nom recherché, liste des fichiers trouvés, classé par taille ...
Quel code faudrait-il mettre pour ouvrir les résultats dans une ListView ?

Merci d'avance,
Logiworld

13 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
C'est possible sous VB6 et ce devrait donc l'être également sous VB.Net.
Ce qui parait par contre plus que certain, c'est qu'une telle recherche prendra un certain temps, pour ne pas dire un temps certain (et c'est là un euphémisme !)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Pourquoi une recherche prend du temps alors que avec l'explorateur Windows, elle met environ 5 à 10 secondes ?
Au pire, quels sont les codes pour faire une recherche simple ?

Bonjour,

avec l'explorateur Windows, elle met environ 5 à 10 secondes ?


Cela, c'est variable. Encore faut-il que le fichier ait été indexé.

Bonjour,
Il existe des dizaines d'exemples de code sur ce site, comme CE LIEN


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
alors que avec l'explorateur Windows, elle met environ 5 à 10 secondes ?

Ouais ? avec combien de partitions, de répertoires, se dossiers, dse soius-dossiers et de fichiers sur ta machine ?
Pour ton info : la mienne, de machine est "raisonnablement" chargée, sur seulement 4 partitions. Et c'est une machine moderne et très performante.

Je viens de faire un petit test depuis l'outil de recherche de Windows (sur le nom de fichier) ===>> plus de TROIS MINUTES !
J'ose à peine penser au temps qu'il faudrait si je n'avais pas fait "le ménage" que je fais régulièrement , hein ...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Et toijours pour ton info (je viens de tester) :
Pour la seule partition C de ma machine :
je suis allé sous DOS, me suis placé en C:\ et ai lancé la commande DOS dir/s (recensement de tous les fichiers de tous les dossiers et sous-dossiers de la seule partition C, donc...) ===>>
plus de DEUX MINUTES 20 secondes
Bref ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Il est bien entendu "possible" que tu penses pouvoir aller plus vite que Windows (dont Explorer et le vrai coeur, en plus) en écrivant des instructions en code interprété par ... Windows...
Si tu y parviens, fais-moi signe : voilà plusieurs années que je cherche à faire des trous plus parfaits que ceux que fait ma perceuse, en n'utilisant toutefois ... que ma perceuse...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
19
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
29 juin 2013
1
si tu veut accelerer la recherche sur ton logiciel pense a crée une indexation externe de celle qu'a windows je suis sur que sa peut se faire
;)
Messages postés
19
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
29 juin 2013
1
voici se que je voulais dire par la (je prévient se code a été fait en 3 minutes donc a modifier)

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        If File.Exists(Application.StartupPath & "\index.txt") Then
            File.Delete(Application.StartupPath & "\index.txt")

        End If
        Shell("cmd /C dir /s /B c:\ >> " & Chr(34) & Application.StartupPath & "\index.txt" & Chr(34))
    End Sub

    Function fast_search(ByVal filetosearch As String) As String()
        Dim pathtofile As String()
        Dim streader As New StreamReader(Application.StartupPath & "\index.txt")
        Dim txtbox As New RichTextBox
        Dim resultbox As New RichTextBox

        txtbox.Text = streader.ReadToEnd
        For Each ligne As String In txtbox.Lines
            If ligne.Contains(filetosearch) Then
                resultbox.AppendText(ligne & vbNewLine)

            End If
        Next
        Return resultbox.Lines
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For Each a As String In fast_search(TextBox1.Text)
            ListBox1.Items.Add(a)
        Next
    End Sub

Personne ne va ouvrir tes fichiers.
Messages postés
19
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
29 juin 2013
1
moi perso je m'en fou ;) je donne juste un coup de main apres si vous voulez pas d'aide les prenez pas
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
156
Bonjour,

Lien supprimé, si tu veux partager un code, il y a une section pour cela ou si le code est très court, il y a codyx.org (snippet).

(Merci de ne pas réveiller les sujets morts)

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
19
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
29 juin 2013
1
aucune réponse n’était donner sur se sujet j'en est donc donner une qui répondait a la question du premier post.

si quelqu'un vient sur se sujet au moins il aura une réponse a sa question et sa évitera des doublons sur le forum ;)