none
Recherche de photos dans des disques dur RRS feed

  • Question

  • Bonjour,

    J'ai un problème, je connais le basic depuis pas très longtemps mais j'ai besoin d'un application que je n'arrive pas à développer.

    Je m'explique : J'essayeais de faire une application qui permetterai qu'en renterrant un mot dans une TextBox l'application me trouve toutes les images contenant ce mot dans leur titre (dans le disque dur souhaité). Je n'ai trouvé aucun tutoriel sur Internet.

    Si vous pouviez me fournir un code complet avec les éléments à ajouter ou directement un projet réalisée (pas en .exe que je puisse modifié le nom de la fenetre) s'il vous plaît.

    Bien à vous,

    Aurélien

    vendredi 14 février 2014 18:49

Réponses

  • Bonjour,

    Je suis d'accord avec Jacques, mais nous sommes un forum d'entre-aide nous aidons tout le monde !

    La réponse pourrait être donnée sans forcement donner le tout, aiguiller la personne cherchant des informations, des réponses, c'est la meilleurs auto formation.

    Si vous ne connaissez pas trop la programmation via le VB .net je vous conseil de voir le Coach VB il vous aidera a faire vos débuts et de comprendre les bases.

    et pour vous mettre sur la bonne piste vous pouvez voir :

    IO.File
    IO.FileInfo

    Si vous voulez par la suite exploité les méta-data de fichier image il faudra, de souvenir, faire la lecture des 128 premiers bites du fichier pour obtenir les informations détailler.


    Cordialement,

    • Marqué comme réponse Aurel Bera lundi 24 février 2014 09:09
    samedi 15 février 2014 11:46
    Auteur de réponse
  • Essayer en améliorant le code c'est juste un début ;)

    Imports System.IO
    
    Public Class Form1
    
    
        Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim TouslesFichiers = Task.Run(Function()
                                               Return Directory.GetFiles("C:\Users\Public\Pictures\Sample Pictures", "*.jpg", SearchOption.AllDirectories)
                                           End Function)
    
            Await TouslesFichiers
    
            For Each LesFichiers In TouslesFichiers.Result
                Console.WriteLine(LesFichiers)
            Next
    
        End Sub
    End Class


    Cordialement,

    • Marqué comme réponse Aurel Bera lundi 24 février 2014 09:09
    samedi 15 février 2014 17:42
    Auteur de réponse
  • Bonjour

    Voici quelques astuces sur ce sujet :

    1. Ne pas faire une recherche sur le disque dur de type : Directory.GetFiles("C:\","*.jpg",SearchOption.AllDirectories). Vous allez générer une exception de type UnauthorizedAccessException quand le système essaye de faire la recherche dans un répertoire ou vous n’avez pas des droits.   A un simple test j’ai eu un tel problème avec  un répertoire trouve dans Recycle Bin. Voir la solution récursive ici : http://www.dotnetperls.com/recursive-file-directory-vbnet
    2. Faites une recherche de type « *leMot*.* » sans extension et filtrez le résultat selon l’extension. Si vous ne démarrez  la recherche avec extension, vous devez faire des recherches pour chaque extension possible (.jpg, .gif, .png, …………..) donc grand consommateur de temps. Si possible vérifiez si « leMot » c’est au moins 3 caractères, pour ne pas avoir une liste très longue.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Modifié Aurel Bera mercredi 19 février 2014 14:00
    • Marqué comme réponse Aurel Bera lundi 24 février 2014 09:10
    lundi 17 février 2014 15:06

Toutes les réponses

  • Bonjour,

    La moindre des choses c'est d'essayer !

    Cela fait plusieurs personnes qui arrive sur ce forum et qui veulent tout sans faire le minimum d'effort.

    Fais ta part et si tu n'y arrives pas on t'aidera mais ne demande pas un code "tout fait"


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    vendredi 14 février 2014 22:28
  • Bonjour,

    Je suis d'accord avec Jacques, mais nous sommes un forum d'entre-aide nous aidons tout le monde !

    La réponse pourrait être donnée sans forcement donner le tout, aiguiller la personne cherchant des informations, des réponses, c'est la meilleurs auto formation.

    Si vous ne connaissez pas trop la programmation via le VB .net je vous conseil de voir le Coach VB il vous aidera a faire vos débuts et de comprendre les bases.

    et pour vous mettre sur la bonne piste vous pouvez voir :

    IO.File
    IO.FileInfo

    Si vous voulez par la suite exploité les méta-data de fichier image il faudra, de souvenir, faire la lecture des 128 premiers bites du fichier pour obtenir les informations détailler.


    Cordialement,

    • Marqué comme réponse Aurel Bera lundi 24 février 2014 09:09
    samedi 15 février 2014 11:46
    Auteur de réponse
  • Désolé si je me suis mal exprimé mais sa fait déjà 2 semaines que j'essaye.
    samedi 15 février 2014 13:51
  • Merci sa m'avance un peu.
    samedi 15 février 2014 13:51
  • Essayer en améliorant le code c'est juste un début ;)

    Imports System.IO
    
    Public Class Form1
    
    
        Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim TouslesFichiers = Task.Run(Function()
                                               Return Directory.GetFiles("C:\Users\Public\Pictures\Sample Pictures", "*.jpg", SearchOption.AllDirectories)
                                           End Function)
    
            Await TouslesFichiers
    
            For Each LesFichiers In TouslesFichiers.Result
                Console.WriteLine(LesFichiers)
            Next
    
        End Sub
    End Class


    Cordialement,

    • Marqué comme réponse Aurel Bera lundi 24 février 2014 09:09
    samedi 15 février 2014 17:42
    Auteur de réponse
  • Bonjour

    Voici quelques astuces sur ce sujet :

    1. Ne pas faire une recherche sur le disque dur de type : Directory.GetFiles("C:\","*.jpg",SearchOption.AllDirectories). Vous allez générer une exception de type UnauthorizedAccessException quand le système essaye de faire la recherche dans un répertoire ou vous n’avez pas des droits.   A un simple test j’ai eu un tel problème avec  un répertoire trouve dans Recycle Bin. Voir la solution récursive ici : http://www.dotnetperls.com/recursive-file-directory-vbnet
    2. Faites une recherche de type « *leMot*.* » sans extension et filtrez le résultat selon l’extension. Si vous ne démarrez  la recherche avec extension, vous devez faire des recherches pour chaque extension possible (.jpg, .gif, .png, …………..) donc grand consommateur de temps. Si possible vérifiez si « leMot » c’est au moins 3 caractères, pour ne pas avoir une liste très longue.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Modifié Aurel Bera mercredi 19 février 2014 14:00
    • Marqué comme réponse Aurel Bera lundi 24 février 2014 09:10
    lundi 17 février 2014 15:06
  • Bonjour

    Un petit retour SVP?

    Merci!

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 19 février 2014 14:00