none
Accédé aux propriétés "détaillées" d'un fichier RRS feed

  • Question

  • Bonjour,

    Comment puis-je faire pour accéder aux propriétés "détaillées" d'un fichier, comme je peux le faire dans l'Explorateur Windows sur un fichier Image
    ou je peux définir un titre ou un mot-clé ?

    J'ai fait avec FileVersionInfo et FileSystem mais il n'y a pas ces propriétés.
    lundi 1 novembre 2010 14:30

Réponses

Toutes les réponses

  • Bonjour,

    Utilisez la classe FileInfo qui permet de récupérer toutes les informations basiques d'un fichier : http://msdn.microsoft.com/fr-fr/library/system.io.fileinfo(VS.80).aspx :

        Dim fi As FileInfo
    
        fi = New FileInfo("< Votre fichier >")
    
        Console.WriteLine(fi.LastAccessTime)
    

    Cordialement


    Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    mardi 2 novembre 2010 08:16
    Modérateur
  • Bonjour,

    FileVersionInfo sert uniquement pour des types de fichiers exécutable, il peut être utiliser aussi pour des fichiers de type texte mais certaine propriété ne servirons pas

    FileInfo sert pour connaitre aussi des informations au fichier de type acces, creation, date modification, etc ...

     

     

      Dim
    
     ofileInfo As
    
     FileVersionInfo = FileVersionInfo.GetVersionInfo("C:\test.exe"
    
    )
      Console.WriteLine("Comments : {0}"
    
    , ofileInfo.Comments)
      Console.WriteLine("CompanyName : {0}"
    
    , ofileInfo.CompanyName)
      Console.WriteLine("FileBuildPart : {0}"
    
    , ofileInfo.FileBuildPart)
      Console.WriteLine("FileDescription : {0}"
    
    , ofileInfo.FileDescription)
      Console.WriteLine("FileMajorPart : {0}"
    
    , ofileInfo.FileMajorPart)
      Console.WriteLine("FileMinorPart : {0}"
    
    , ofileInfo.FileMinorPart)
      Console.WriteLine("FileName : {0}"
    
    , ofileInfo.FileName)
      Console.WriteLine("FilePrivatePart : {0}"
    
    , ofileInfo.FilePrivatePart)
      Console.WriteLine("FileVersion : {0}"
    
    , ofileInfo.FileVersion)
      Console.WriteLine("InternalName : {0}"
    
    , ofileInfo.InternalName)
      Console.WriteLine("IsDebug : {0}"
    
    , ofileInfo.IsDebug)
      Console.WriteLine("IsPatched : {0}"
    
    , ofileInfo.IsPatched)
      Console.WriteLine("IsPreRelease : {0}"
    
    , ofileInfo.IsPreRelease)
      Console.WriteLine("IsPrivateBuild : {0}"
    
    , ofileInfo.IsPrivateBuild)
      Console.WriteLine("IsSpecialBuild : {0}"
    
    , ofileInfo.IsSpecialBuild)
      Console.WriteLine("Language : {0}"
    
    , ofileInfo.Language)
      Console.WriteLine("LegalCopyright : {0}"
    
    , ofileInfo.LegalCopyright)
      Console.WriteLine("LegalTrademarks : {0}"
    
    , ofileInfo.LegalTrademarks)
      Console.WriteLine("OriginalFilename : {0}"
    
    , ofileInfo.OriginalFilename)
      Console.WriteLine("PrivateBuild : {0}"
    
    , ofileInfo.PrivateBuild)
      Console.WriteLine("ProductBuildPart : {0}"
    
    , ofileInfo.ProductBuildPart)
      Console.WriteLine("ProductMajorPart : {0}"
    
    , ofileInfo.ProductMajorPart)
      Console.WriteLine("ProductMinorPart : {0}"
    
    , ofileInfo.ProductMinorPart)
      Console.WriteLine("ProductName : {0}"
    
    , ofileInfo.ProductName)
      Console.WriteLine("ProductPrivatePart : {0}"
    
    , ofileInfo.ProductPrivatePart)
      Console.WriteLine("ProductVersion : {0}"
    
    , ofileInfo.ProductVersion)
      Console.WriteLine("SpecialBuild : {0}"
    
    , ofileInfo.SpecialBuild)
    
      'Comments : This installation was built with Inno Setup.
    
    
      'CompanyName: Jared(Breland)
    
    
      'FileBuildPart : 1
    
    
      'FileDescription : Package for Universal Extractor        
    
    
      'FileMajorPart : 1
    
    
      'FileMinorPart : 6
    
    
      'FileName : C:\test.exe
    
    
      'FilePrivatePart : 0
    
    
      'FileVersion : 1.6.1    
    
    
      'InternalName:
    
    
      'IsDebug : False
    
    
      'IsPatched : False
    
    
      'IsPreRelease : False
    
    
      'IsPrivateBuild : False
    
    
      'IsSpecialBuild : False
    
    
      'Language: Language(Neutral)
    
    
      'LegalCopyright : GNU General Public License v2                  
    
    
      'LegalTrademarks:
    
    
      'OriginalFilename:
    
    
      'PrivateBuild:
    
    
      'ProductBuildPart : 1
    
    
      'ProductMajorPart : 1
    
    
      'ProductMinorPart : 6
    
    
      'ProductName: Universal(Extractor)
    
    
      'ProductPrivatePart : 0
    
    
      'ProductVersion : 1.6.1    
    
    
      'SpecialBuild:
    
    
    

     

    Je pense que ce que vous rechercher a faire est comment lire des informations sur un type de fichier image
    ce que vous voulez extraire comme information est le nombre de pixel, la taille, l'appareil, etc ...

    je sais qu'il faut lire ses informations dans les premiers bytes de l'image, et plus exactement d'après mes souvenirs sont les 128 premiers bytes

    Je vais essayer de vous faire un exemple aujourd'hui et vous donner le code plutard :)

     

    A bientot

     

     

     

     

     

     

     

     

     

     

     

     


    Cordialement, Troxsa
    • Modifié TroxsaEditor mardi 2 novembre 2010 14:02 Suppression des sauts de lignes
    mardi 2 novembre 2010 12:17
    Auteur de réponse
  • Bonjour,

    Oui effectivement j'ai fait avec ces deux classes et il n'y a pas les propriétés Titre, Objet, Notation, etc... que l'on peut trouver

    dans le menu Propriétés de l'Explorateur Windows en cliquant sur une image JPEG dans l'onglet Détails.

    mardi 2 novembre 2010 13:00
  •  

    Bonjour,

     

    Li31, je vous remercie de nous tenir au courant si vous avez réussi l’implémentation de la classe FileInfo et si vous avez obtenu les résultats désirés.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    mardi 2 novembre 2010 13:40
  • Re bonjour

    En parcourant le NET j'ai vu cette sourcehttp://www.vbfrance.com/telecharger.aspx?ID=38910

     

    Je pense que cela devrai répondre a toute vos questions

     

    A bientot


    Cordialement, Troxsa
    • Marqué comme réponse li31 mercredi 3 novembre 2010 14:02
    mardi 2 novembre 2010 14:21
    Auteur de réponse
  • Bonjour,

    Oui merci pour le lien, cela pourrait me servir, je regarderait plus tard.

    Mais moi ce que je voudrais c'est utiliser les "routines" qui servent dans l'Explorateur.

     

    mardi 2 novembre 2010 15:48
  • Bonjour,

    Voir http://code.msdn.microsoft.com/WindowsAPICodePack qui complète .NET. Je vois notamment que "Windows Shell property system" est dans la liste.


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Proposé comme réponse Alex Petrescu mercredi 3 novembre 2010 13:47
    mardi 2 novembre 2010 18:21
    Modérateur
  • Re :)

    Super le lien de Patrice, et hop dans les favoris ! :) merci

     

    A bientot


    Cordialement, Troxsa
    mercredi 3 novembre 2010 08:55
    Auteur de réponse
  • Bonjour,

     

    Merci Patrice pour ce lien, je vais l’ajouter dans la liste de ressources de .NET Framework !

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

     


    Suivez MSDN sur Twitter 

    mercredi 3 novembre 2010 09:45
  • Bonjour,

    Merci Patrice pour ce lien.

    Voilà, c'est ce que je cherchais  ("Les métadonnées des images numérique [IPTC et XMP]" ).

    Encore merci Troxsa.

    mercredi 3 novembre 2010 14:01
  • Bonjour,

    Un autre lien pour accédé aux Metadonnées JPEG avec le Framework 4.

    vendredi 5 novembre 2010 09:06
  • Bonjour

     

    J'ai voulu regardé le lien que vous avez donner li31 et cela parle de System.Windows.Media.Imaging que j'ai trouvé nul par sur mon système !

    avez trouvez le fonctionnement avec System.Windows.Media.Imaging ?

     

    En vous remerciant d'avance

     

    A bientot


    Cordialement, Troxsa
    mardi 9 novembre 2010 09:32
    Auteur de réponse
  • En cherchant encore un peu cela ce trouve dans PresentationCore.dll

     

    A bientot


    Cordialement, Troxsa
    mardi 9 novembre 2010 09:57
    Auteur de réponse
  • Bonjour,

    TroXsa, regardez avec BitmapMetadata...

    Voici une Classe qui peut marcher :

    Imports System.Windows.Media.Imaging  ' Référence à PresentationCore.dll
    Imports System.IO
    Public Class MetaDataJPEG
      Public BitmapMetadata As BitmapMetadata
      Private bf As BitmapFrame = Nothing
      Private _filename As String
      Public Sub New(ByVal Filename As String)
        Dim decoder As BitmapDecoder = Nothing
        If File.Exists(Filename) Then
          _filename = Filename
          ' load the jpg file with a JpegBitmapDecoder  
          Using jpegStreamIn As Stream = File.Open(Filename, FileMode.Open, FileAccess.Read, FileShare.None)
            decoder = New JpegBitmapDecoder(jpegStreamIn, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad)
          End Using
          bf = decoder.Frames(0)
          If bf IsNot Nothing Then
            BitmapMetadata = DirectCast(bf.Metadata.Clone(), BitmapMetadata)
          End If
        End If
      End Sub
      Public Function SaveBitmapMetadata() As Boolean
        Dim originalImage As New FileInfo(_filename)
        If BitmapMetadata IsNot Nothing Then
          Try
            Dim encoder As New JpegBitmapEncoder()
            encoder.Frames.Add(BitmapFrame.Create(bf, bf.Thumbnail, BitmapMetadata, bf.ColorContexts))
            ' Delete the original file
            originalImage.Delete()
            ' Save the new image 
            Using jpegStreamOut As Stream = File.Open(_filename, FileMode.CreateNew, FileAccess.ReadWrite)
              encoder.Save(jpegStreamOut)
            End Using
            Return True
          Catch ex As Exception
          End Try
        End If
        Return False
      End Function
    End Class
    
    

    Exemple d'utilisation :

        Dim keywords As String = "album voyage 1999"
        Dim mdj As New MetaDataJPEG(MyFilenameJPEG)
        mdj.BitmapMetadata.Keywords = New Collections.ObjectModel.ReadOnlyCollection(Of String)(Split(keywords, " "))
        mdj.SaveBitmapMetadata()
    
    

    mardi 9 novembre 2010 10:14