|
Partie 1
Partie 2
Partie 3
FileSystem ou comment travailler avec des fichiers...
Pour travailler sur des fichiers avec eVB
(ou NS Basic) il n'y a pas 35 moyens, il faut utiliser les FileSystem
controls. Nous allons apprendre dans cet article comment utiliser cet
outil très puissant.
2 façons d'utiliser cet outil
Les FileSystem peuvent être utilisés
de 2 manières. La manière la plus simple consiste à
cocher leur référence dans la liste des composants du projet
et ainsi laisser eVB effectuer l'instanciation (pas besoin de jouer du
CreateObject). L'autre manière est de cocher leur référence
dans la liste des références du projet. Avec cette 2ème
méthode, c'est à vous de déclarer la variable de
travail sur l'objet et l'instancier (avec NS Basic on ne coche rien du
tout).
L'intérêt de la première
méthode est la simplification de toute la procédure de création.
Par contre vous n'avez aucun contrôle sur l'instanciation du ou
des objets. De plus, si vous avez besoin de plusieurs instances du contrôle,
il faut le placer plusieurs fois sur la feuille.
L'intérêt de la deuxième
méthode est que c'est vous qui décidez du moment où
vous instanciez les objets et quand vous voulez libérer la memoire,
vous pouvez le faire. Cette méthode est moins simple à mettre
en oeuvre, mais je sais que vous apprenez vite, alors...
Référencer dans eVB les FileSystem controls
 |
Comme nous allons utiliser la méthode n°2
qui consiste à gérer nous même l'instanciation
des objets du contrôle, nous allons cocher 'Microsoft CE File
System Control 3.0" pour que eVB puisse nous lister tous les
objets, les propriétés et méthodes fournis par
le contrôle. |
Le contrôle fournit 2 objets, 'FileSystem'
et 'File'. L'objet 'FileSystem' permet de gérer les fichiers et
les dossiers de votre Pocket PC. L'objet 'File' permet de travailler avec
les fichiers et leur contenu.
L'objet 'FileSystem'
Pour utiliser les services de l'objet 'FileSystem'
il faut l'instancier. Le code suivant effectue l'instanciation et utilise
la fonction permettant de lire la taille d'un fichier en octets :
Rem On déclare
une variable de type FileSystem
Dim wFileSystem As FileSystem
Rem Instanciation
Set wFileSystem = CreateObject("FileCtl.FileSystem")
Rem Récupération de la
taille d'un fichier en octets
Dim wTaille As Long
wTaille = wFileSystem.FileLen("\windows\coredll.dll")
MsgBox "Taille de coredll.dll = " & wTaille
Voici les autres méthodes fournies
par l'objet 'FileSystem'
|
Dir
Permet de lister tous les fichiers et dossiers présents
à un chemin donné.
Le premier appel doit indiquer le chemin de recherche et les jokers.
Pour lister tous les fichiers entrant dans les critères,
la méthode Dir doit être ensuite appelée avec
une chaine vide en paramètre et tant qu'elle retourne une
chaine non vide.
Rem On affiche tous les fichiers dont l'extension est .wav
Dim d As String
d = wFileSystem.Dir("\Windows\*.wav", fsAttrNormal)
Do While d <> ""
Msgbox d
d = wFileSystem.Dir
Loop
Il est possible de cibler la recherche avec les constantes suivantes :
| fsAttrNormal |
Fichier sans attribut particulier |
| fsAttrReadOnly |
Fichier en lecture seule |
| fsAttrHidden |
Fichier caché |
| fsAttrSystem |
Fichier système |
| fsAttrVolume |
Volume |
| fsAttrDirectory |
Dossier |
| fsAttrArchive |
Fichier avec attribut Archive |
|
|
FileCopy
Permet de copier un fichier
Call wFileSystem.FileCopy("\windows\alarm1.wav","\My
Documents\alarm1.wav")
|
|
FileDateTime
Retourne la date et l'heure de création ou de dernière
modification d'un fichier sous la forme d'un variant de type Date
Dim wDate As Date
wDate = wFileSystem.FileDateTime("\windows\alarm1.wav")
MsgBox "Alarm1 = " & FormatDateTime(wDate, vbGeneralDate)
|
|
FileLen
Retourne la taille en octets d'un fichier
Dim wTaille As Long
wTaille = wFileSystem.FileLen("\windows\alarm1.wav")
Msgbox "Alarm1 = " & wTaille & " octets"
|
|
GetAttr
Retourne la attributs d'un fichier. Une opération AND logique
permet de récupérer tous les attributs
Dim wAttributs As Long
Dim wMessage As String
wAttributs = wFileSystem.GetAttr("\windows\coredll.dll")
If wAttributs And vbNormal Then wMessage = "Normal "
If wAttributs And vbReadOnly Then wMessage = wMessage & "
ReadOnly "
If wAttributs And vbHidden Then wMessage = wMessage & "
Hidden "
If wAttributs And vbSystem Then wMessage = wMessage & "
System "
If wAttributs And vbDirectory Then wMessage = wMessage & "
Directory "
If wAttributs And vbArchive Then wMessage = wMessage = " Archive
"
MsgBox "Attributs de coredll.dll = " & wMessage
|
|
Kill
Permet la destruction d'un fichier. Il est possible d'utiliser
les jokers (* et ?) pour détruire un ensemble de fichiers.
Call wFileSystem.Kill("\My Documents\toto.bmp")
Call wFileSystem.Kill("\My Documents\*.bmp")
|
|
MkDir
Permet la création d'un dossier
Call wFileSystem.MkDir("\MonDossier")
|
|
MoveFile
Petit frère de FileCopy, MoveFile déplace un fichier
vers un autre destination
Call wFileSystem.MoveFile("\My Documents\toto.bmp",
"\MonDossier\toto.bmp")
|
|
RmDir
Elimine un dossier. Le dossier doit être vide.
Call wFileSystem.RmDir("\MonDossier")
|
|
SetAttr
Permet de donner des attributs à un fichier ou dossier.
Dim wAttr As Long
wAttr = fsReadOnly Or fsAttrHidden
Call wFileSystem.SetAttr("\My Documents\toto.bmp", wAttr)
Vous pouvez utiliser les même constantes que Dir et GetAttr.
Les attributs sont assemblés avec l'opérateur logique
OR.
|
Conclusion de cette première
partie
Nous verrons dans la seconde partie de
cet article comment utiliser l'objet 'File' qui permet de travailler directement
avec les fichiers et leur contenu.
Stéphane
Sibué
|