OVH Cloud OVH Cloud

Win32 API accès aux attributs des fichies sur NTFS (win2k SP4)

3 réponses
Avatar
pyfux
Bonjour =E0 tous,

je souhaite pouvoir r=E9cup=E9rer =E0 partir d'un bout de code VB6 les
attributs d'un document word ou excel (commentaires, descriptions,
auteurs, autres champs dynamiques...)

Comment faire?

Il me semble que ces m=E9ta-donn=E9es sont stock=E9 au niveau du syst=E8me =
de
fichier NTFS. Quelles sont les API win 32 =E0 utiliser pour lister pour un
fichier ces attributs?

Vraiment merci pour tous ceux qui cherchent et une grosse accolade pour
celui qui me propose une solution!

Tchao!
Pierre-yves

P.S.: d=E9j=E0 essay=E9:
* FilesystemObject
* Automation (classe Word)

3 réponses

Avatar
Picalausa François
"pyfux" a écrit dans le message de news:

Bonjour à tous,



je souhaite pouvoir récupérer à partir d'un bout de code VB6 les
attributs d'un document word ou excel (commentaires, descriptions,
auteurs, autres champs dynamiques...)

Il me semble que ces méta-données sont stocké au niveau du système de
fichier NTFS. Quelles sont les API win 32 à utiliser pour lister pour un
fichier ces attributs?




Hello,

Tu peux jeter un oeil à cette fiche de la FAQ:
http://faq.vb.free.fr/index.php?questionv

Même sous FAT32, ces données présentes, et donc les flux de données NTFS ne
sont pas la bonne piste. Néanmoins, voici, pour les éventuels intéressés, la
plupart des choses à savoir sur les flux NTFS sont décrites ici:
http://www.bellamyjc.org/fr/stream.html

--
Picalausa François
Avatar
Jacques93
Bonjour pyfux,
pyfux a écrit :
Bonjour à tous,

je souhaite pouvoir récupérer à partir d'un bout de code VB6 les
attributs d'un document word ou excel (commentaires, descriptions,
auteurs, autres champs dynamiques...)

Comment faire?

Il me semble que ces méta-données sont stocké au niveau du système de
fichier NTFS. Quelles sont les API win 32 à utiliser pour lister pour un
fichier ces attributs?

Vraiment merci pour tous ceux qui cherchent et une grosse accolade pour
celui qui me propose une solution!

Tchao!
Pierre-yves

P.S.: déjà essayé:
* FilesystemObject
* Automation (classe Word)




Si tu te limites à Word ou Excel, tu peux tout à fait utiliser
Automation, en adaptant :

1 - Word :

Sub ListWordProperties()
Dim s As String
Dim proDoc As DocumentProperty

On Error Resume Next
For Each proDoc In ActiveDocument.BuiltInDocumentProperties
s = s & proDoc.Name & "= " & proDoc.Value & vbCrLf
Next
MsgBox s
End Sub

2 - Excel :

Sub ListExcelProperties()
Dim proDoc As DocumentProperty
Dim r As Integer

r = 1
Worksheets(1).Activate
On Error Resume Next
For Each proDoc In ActiveWorkbook.BuiltinDocumentProperties
Cells(r, 1).Value = proDoc.Name
Cells(r, 2).Value = proDoc.Value
r = r + 1
Next
End Sub


Sinon, de manière plus générale, sur le site :

http://www.mvps.org/emorcillo/en/code/vb6/index.shtml

tu peux télécharger "Reading Document Properties" :

http://www.mvps.org/emorcillo/download/vb6/readdocumentproperties.zip

Ce projet nécessite "OLELIB.TLB - OLE interfaces & functions "

http://www.mvps.org/emorcillo/download/vb6/tl_ole.zip

This type library is used in many of the samples of this site and
contains a lot of interface declarations that are not exposed to VB by
Windows. The .zip archive also includes the library "OLELIB2.TLB"
which has some of the interfaces that are included in "OLELIB.TLB" but
declared to be used with the Implements keyword. Some samples are also
included. After you unzip the file copy the both type libraries to the
WindowsSystem32 folder and register them with regtlib.exe.

Il suffit de dézipper olelib.tlb et de l'enregistrer avec regtlib.exe.
Les autres fichiers du .zip ne sont pas indispensables.

Cela donne :

http://cjoint.com/?eblT4cyaJS

PS : Cela n'a rien à voir les méta données de NTFS, ces infos sont
également disponibles en FAT32

--
Cordialement,

Jacques.
Avatar
Jacques93
Bonjour pyfux,

L'horloge de ton PC semble avancer quelque peu ;-)

--
Cordialement,

Jacques.