Bonjour,

J'ai actuellement un script qui me permet de parcourir les différent fichiers d'une arborescence et qui pour chaque fichier récupère :
- Son nom
- Son adresse dans l'arborescence
- Son type

Voila la partie principale du script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
f.writeline("<?xml version=""1.0"" encoding=""ISO-8859-1"" ?>")
f.writeline("<add>")
scanFolder(stRep)
f.writeline("</add>")
 
MsgBox "Terminé ! " & vbCrLf & indexedFiles & " fichiers "
 
' METHODES
' ####################################
' Scanne un répertoire
private sub scanFolder(dir)
  ' liste les documents du répertoire
  If oFSO.FolderExists(dir) Then
 
    For each oFl in  oFSO.GetFolder(dir).Files
 
      If hasIndexableType(oFl) Then
        addDocSolR(oFl)
      End If
    Next
      ' parcours en profondeur des sous-répertoires
    For each oFld in  oFSO.GetFolder(dir).SubFolders
      scanFolder(oFld.Path)
    Next
 
  End If
 
end sub
 
' Sérialise un fichier sous forme de XML
private sub addDocSolR(file)
  indexedFiles=indexedFiles+1
 
  f.writeline(" <doc>")
  f.writeline(" <field name=""id"">" & indexedFiles & "</field>")
  f.writeline("   <field name=""name"">" & file.Name & "</field>")
  f.writeline("	  <field name=""path"">" & file.Path & "</field>")
  f.writeline("   <field name=""type"">" & file.Type & "</field>")
 
  'Ajouter les attributs des fichiers à indexer ici
 
  f.writeline(" </doc>")
 
end sub
 
private function hasIndexableType(file)
  res = false
  If Instr(1,file.Name, ".") <> 0 Then
    tab = Split(file.Name,".")
    extension = tab(UBound(tab))
 
    if extension = "doc" Then
      res = true
    End If
    'suite avec les autres extensions autorisées
 
   End If
   hasIndexableType=res
end function
Le script me crée donc un fichier xml avec une liste de tous les fichiers trouvés au format word, excel, txt, pdf.

Exemple pour 1 fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
<add>
 <doc>
 <field name="id">1</field>
   <field name="name">Nom du fichier 1</field>
   <field name="path">Adresse du fichier 1</field>
   <field name="type">Présentation Microsoft Office PowerPoint 97-2003</field>
 </doc>
</add>

Je voudrais récupérer le contenu de chaque fichier afin que celui-ci soit présent dans mon xml qui est généré automatiquement.
Le but est d'obtenir un champ supplémentaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
<add>
 <doc>
 <field name="id">1</field>
   <field name="name">Nom du fichier 1</field>
   <field name="path">Adresse du fichier 1</field>
   <field name="type">Présentation Microsoft Office PowerPoint 97-2003</field>
   <field name="content">Contenu du fichier 1</field>
 </doc>
</add>
Au fil de mes recherches j'ai vu qu'il existait ce type de code pour lire des fichiers txt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
' Lit le contenu d'un fichier dans une variable
 Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject" )
Set f = fso.OpenTextFile("c:\un_repertoire\toto.txt", ForReading)
une_variable = f.ReadAll
f.Close
 
' Verification
wscript.echo une_variable
Existe-t-il une solution similaire pour des fichiers du type xls, xlsx, doc, docx, pdf... ?
Ou alors est-il possible d'effectuer une conversion de ces fichiers en format txt ?

J'espère avoir été claire
Merci d'avance !
Linaet