Le premier site francophone dédié au développement Pocket PC


Utiliser les 'FileSystem Controls' (partie 1)
 
   


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é

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.