none
Récupération des données d'un fichier RRS feed

  • Question

  • Je voudrais pouvoir récupérer les informations concernant une photographie come il est fait dans l'explorateur Window. Je voudrais, principalement récupérer le nom de la photo, le nom de l'appareil photo et les dimensions de la photo. J'ai essayé en utilisant "My.Computer.FileSystem.GetFileInfo" mais je n'y trouve pas ce que je désire. Pourriez-vous m'aider ? Merci d'avance.
    
    
    mardi 6 février 2018 09:18

Réponses

  • Une des méthodes est d'utiliser le Shell.

    Par ex, avec un fichier "e:\test.png" =>

    ' reference  : Microsoft Shell Controls and Automation
    ' Imports Shell32
    Dim objShell As Shell
    Dim objFolder2 As Folder2
    
    objShell = New Shell
    objFolder2 = objShell.NameSpace("e:\")
    If (Not objFolder2 Is Nothing) Then
        Dim arrHeaders(34)
        Dim indice As Integer
        For indice = 0 To 34
            arrHeaders(indice) = objFolder2.GetDetailsOf(objFolder2.Items, indice)
        Next
        Dim objFolderItem As FolderItem = objFolder2.ParseName("test.png")
        If (Not objFolderItem Is Nothing) Then
            For indice = 0 To 34
                Console.WriteLine(indice & vbTab & arrHeaders(indice) & ": " & objFolder2.GetDetailsOf(objFolderItem, indice))
            Next
        End If          
    End If

    • Marqué comme réponse Euskadi33 mardi 6 février 2018 14:49
    mardi 6 février 2018 11:47
  • J'ai essayé cette solution mais je me trouve confronté à un problème. La déclaration "Imports Shell32" n'est pas reconnue. De ce fait, l'objet "Shell" ne l'est pas non plus. Aurais-je oublié quelque chose dans mes autres déclarations ? Merci d'avance

    Tu as rajouté la référence Microsoft Shell Controls and Automation ?
    • Marqué comme réponse Euskadi33 mercredi 7 février 2018 14:24
    mardi 6 février 2018 16:17
  • Comment ça "l'affichage n'apparait pas" ?

    J'ai mis un Console.WriteLine pour le test, donc si ça passe dans la boucle (normalement si le fichier existe), ça s'affiche forcément dans la fenêtre Output



    • Modifié Castorix31 mercredi 7 février 2018 15:06
    • Marqué comme réponse Euskadi33 mercredi 7 février 2018 18:02
    mercredi 7 février 2018 15:02

Toutes les réponses

  • C'est quoi le format de l'image ? (l'extension du fichier par exemple)

    Paul Bacelar, Ex - MVP VC++

    mardi 6 février 2018 10:00
  • Une des méthodes est d'utiliser le Shell.

    Par ex, avec un fichier "e:\test.png" =>

    ' reference  : Microsoft Shell Controls and Automation
    ' Imports Shell32
    Dim objShell As Shell
    Dim objFolder2 As Folder2
    
    objShell = New Shell
    objFolder2 = objShell.NameSpace("e:\")
    If (Not objFolder2 Is Nothing) Then
        Dim arrHeaders(34)
        Dim indice As Integer
        For indice = 0 To 34
            arrHeaders(indice) = objFolder2.GetDetailsOf(objFolder2.Items, indice)
        Next
        Dim objFolderItem As FolderItem = objFolder2.ParseName("test.png")
        If (Not objFolderItem Is Nothing) Then
            For indice = 0 To 34
                Console.WriteLine(indice & vbTab & arrHeaders(indice) & ": " & objFolder2.GetDetailsOf(objFolderItem, indice))
            Next
        End If          
    End If

    • Marqué comme réponse Euskadi33 mardi 6 février 2018 14:49
    mardi 6 février 2018 11:47
  • Le format principal est du JPEG (.jpg)
    mardi 6 février 2018 14:49
  • J'ai essayé cette solution mais je me trouve confronté à un problème. La déclaration "Imports Shell32" n'est pas reconnue. De ce fait, l'objet "Shell" ne l'est pas non plus. Aurais-je oublié quelque chose dans mes autres déclarations ? Merci d'avance
    mardi 6 février 2018 15:42
  • J'ai essayé cette solution mais je me trouve confronté à un problème. La déclaration "Imports Shell32" n'est pas reconnue. De ce fait, l'objet "Shell" ne l'est pas non plus. Aurais-je oublié quelque chose dans mes autres déclarations ? Merci d'avance

    Tu as rajouté la référence Microsoft Shell Controls and Automation ?
    • Marqué comme réponse Euskadi33 mercredi 7 février 2018 14:24
    mardi 6 février 2018 16:17
  • J'ai fait comme vous me l'avez indiqué mais ça ne fonctionne pas. L'affichage des données n'apparait pas. J'ai modifié le module pour pouvoir utiliser un DataGridView pour l'affichage mais rien ne s'affiche. Je ne comprends pas.
    mercredi 7 février 2018 14:24
  • Comment ça "l'affichage n'apparait pas" ?

    J'ai mis un Console.WriteLine pour le test, donc si ça passe dans la boucle (normalement si le fichier existe), ça s'affiche forcément dans la fenêtre Output



    • Modifié Castorix31 mercredi 7 février 2018 15:06
    • Marqué comme réponse Euskadi33 mercredi 7 février 2018 18:02
    mercredi 7 février 2018 15:02
  • J'ai compris pourquoi ça ne marchait pas. Je n'avais pas déclaré le chemin complet pour le objFolder2 ! Depuis que je l'ai fait, ça tourne bien. Merci pour les tuyaux.
    mercredi 7 février 2018 18:02