Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo
Sommaire > Fichiers et répertoires
        Comment utiliser fileSystemObject ?
        Comment lire un fichier XML ?
        Comment gérer mes fichiers avec Access (objets OLE) ?
        Comment travailler sur un fichier texte (création, lecture, écriture ...)
        Comment avec l'API GetOpenFileNameA ouvrir plusieurs fichiers à la fois ?
        Comment compter les occurences d'une chaîne dans un fichier ?
        Comment obtenir le chemin relatif d'un fichier
        Comment tester l'existence d'un fichier ?
        9.1. Création/Suppression/Modifications (11)
                Comment copier un fichier d'un répertoire à un autre ?
                Comment copier un répertoire ?
                Comment créer un répertoire avec Access ?
                Comment créer et écrire dans un fichier texte ?
                Comment envoyer un fichier à la corbeille ?
                Importation de fichier texte dans une table, comment préciser le séparateur dans la commande TransferText ?
                Comment lire / écrire dans un fichier .ini ?
                Comment renommer un fichier ou un répertoire ?
                Comment détruire un fichier ?
                Comment supprimer un répertoire ?
                Comment compresser et décompresser des fichiers ?
        9.2. Recherches et localisations (13)
                Afficher la boîte de dialogue ouvrir afin de récupérer le nom et le chemin du fichier sélectionné
                Afficher la boîte de dialogue Enregistrer sous afin de récupérer le nom et le chemin du fichier sélectionné
                Comment récupérer le répertoire d'un fichier à partir de son chemin complet ?
                Comment obtenir le contenu d'un répertoire ?
                Plusieurs façons de parcourir mon disque dur et de récupérer le chemin du fichier sélectionné
                Comment chercher dans un disque rigide un fichier dont le nom est donné ? Comment obtenir son répertoire ?
                Utilise le contrôle Common Dialog pour récupérer le chemin d'un fichier
                Comment obtenir les chemins complets des répertoires spéciaux ?
                Comment connaître le chemin vers les répertoires spéciaux ?
                Comment récupérer les chemins complets des répertoires Windows, System, et Windows\Temp
                Comment récupérer le répertoire courant (où se trouve la base de données) ?
                Comment ouvrir une fenêtre de sélection de répertoire ?
                Comment isoler le répertoire dans lequel se trouve un fichier lorsqu'on a son chemin complet ?
        9.3. Informations (9)
                Comment connaître les dates de création, de dernière modification et de dernier accès à un fichier
                Comment savoir si un fichier donné se trouve bien dans un répertoire ?
                Comment savoir si un fichier existe ?
                Comment connaître la taille d'un dossier ou répertoire ?
                Comment récupérer la taille d'un fichier ?
                Comment obtenir la taille d'un répertoire ?
                Comment récupérer les propriétés d'un PDF
                Comment savoir si un fichier est ouvert ?
                Comment compter les fichiers dans un répertoire ?

precedent    sommaire    suivant   


Comment utiliser fileSystemObject ?
auteur : Romain Puyfoulhoux
Ajoutez la librairie Microsoft Scripting Runtime. Le fichier correspondant se nomme scrrun.dll

lien : FAQ VB

Comment lire un fichier XML ?
auteurs : Romain Puyfoulhoux, Lou Pitchoun
La lecture d'un fichier XML se fait à l'aide d'un parseur. Dans les références du projet, ajoutez Microsoft XML.

Voici un exemple qui affiche dans la fenêtre de débogage la liste des balises contenues dans un document xml.
Private Sub BrowseChildNodes(root_node As IXMLDOMNode)

    Dim i As Long
   
    For i = 0 To root_node.childNodes.length - 1
        If root_node.childNodes.Item(i).nodeType <> 3 Then Debug.Print root_node.childNodes.Item(i).baseName
        BrowseChildNodes root_node.childNodes(i)
    Next

End Sub

Private Sub BrowseXMLDocument(ByVal filename As String)

    Dim xmlDoc As DOMDocument, root As IXMLDOMElement
   
    Set xmlDoc = New DOMDocument
    xmlDoc.async = False
    xmlDoc.Load filename
    Set root = xmlDoc.documentElement
    If Not root Is Nothing Then
        Debug.Print root.baseName
        BrowseChildNodes root
    End If

End Sub
Appelez simplement la procédure BrowseXMLDocument en passant en paramètre le chemin du fichier. Cette procédure ouvre
le fichier puis appelle la procédure BrowseChildNodes qui parcoure l'ensemble des balises de façon récursive.

------------------------------------------------------------------------------------------------

Pour modifier une valeur :
root_node.childNodes.Item(i).Text = "Lou Pitchoun"
Pour sauvegarder :
xmlDoc.Save "Chemin + nom fichier"
Ce code donne le nom de la balise :
Debug.Print root_node.childNodes.Item(i).baseName
lien : FAQ VB
lien : fr Repousser les limites d'Access - récupérer un fil RSS
lien : fr Visual Basic 6.0 et le format XML

Comment gérer mes fichiers avec Access (objets OLE) ?
auteur : Maxence HUBICHE
On a souvent parlé des images en disant qu'il valait mieux éviter de les stocker dans la base de données. Ceci est valide pour tous les objets OLE.
Un OS (Système d'Exploitation) est prévu pour gérer les fichiers. Les stocker à l'extérieur de la base de données pour ne stocker dans la base que le chemin d'accès donnera souvent de bien meilleurs résultats.

Exemple d'utilisation du chemin stocké grâce à une API :
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
puis dans le code on l'appelle ainsi :
ShellExecute Me.hWnd, vbNullString, CheminduFichier, "", vbNullString, 1
lien : faq Comment ouvrir un fichier HTML, Word, PDF ou autre en utilisant l'exécutable associé ?
lien : faq Que faire quand l'API ShellExecute ne fonctionne pas ?

Comment travailler sur un fichier texte (création, lecture, écriture ...)
auteur : Maxence HUBICHE
Lire un fichier :

Function LireFichier(ByVal sPath As String) As String()
    Dim fso     As FileSystemObject
    Dim fFile   As File
    Dim ts      As TextStream
    Dim result  As String
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fFile = fso.GetFile(sPath)
    Set ts = fFile.OpenAsTextStream(ForReading)
   
    result = ts.ReadAll
    LireFichier = Split(result, vbCrLf)
   
    ts.Close
    Set ts = Nothing
    Set fFile = Nothing
    Set fso = Nothing
End Function
Créer un fichier :

Function CreerFichier(ByVal sPath As String)
    Dim fso As FileSystemObject
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateTextFile sPath
    Set fso = Nothing
End Function
Ajouter une ligne :

Function AjoutLigneDansFichier(ByVal sPath As String, ByVal sTexte As String)
    Dim fso     As FileSystemObject
    Dim fFile   As File
    Dim ts      As TextStream
   
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fFile = fso.GetFile(sPath)
    Set ts = fFile.OpenAsTextStream(ForAppending)
   
    ts.WriteLine sTexte
   
    ts.Close
    Set ts = Nothing
    Set fFile = Nothing
    Set fso = Nothing
End Function 
lien : Comment créer et écrire dans un fichier texte ?

Comment avec l'API GetOpenFileNameA ouvrir plusieurs fichiers à la fois ?
auteur : shwin
Il suffit de mettre l'attribut flags à la valeur suivante :

openfile.flags = &H200 'Multiselect 
Ensuite, la variable fichier est un string qui va contenir les noms.

C:\autoexec.bat nouveau.txt 
A vous de travailler cette chaîne pour obtenir le résultat souhaité.

lien : faq Rétablir les liaisons des tables liées après déplacement d'une base fractionnée
lien : faq Afficher la boîte de dialogue ouvrir afin de récupérer le nom et le chemin du fichier sélectionné

Comment compter les occurences d'une chaîne dans un fichier ?
auteur : Cafeine
C'est faisable grâce aux RegExp, pensez à ajouter la référence Microsoft Regular Expressions 5.5 :

Function CountMatches(ByVal strFic As String, ByVal strSearch As String) As Long

    Dim reg As VBScript_RegExp_55.RegExp
    Dim Matches As VBScript_RegExp_55.MatchCollection
    Dim Fic As Integer
    Dim strBuff As String * 20000
    Dim strBorder As String
    
    ' instanciation

    Set reg = New VBScript_RegExp_55.RegExp
    
    reg.Global = True
    reg.IgnoreCase = True
    reg.Multiline = True
    reg.Pattern = "(" & strSearch & ")"

    ' gestion fichier

    Reset
    Fic = FreeFile
    Open strFic For Binary Access Read As #Fic
    
    Do While Not EOF(Fic)
        strBorder = Right(strBuff, Len(strSearch) - 1)
        Get #Fic, , strBuff
        strBorder = strBorder & strBuff
        Set Matches = reg.Execute(strBorder)
        CountMatches = CountMatches + Matches.Count
    Loop
    Close #Fic
        
    ' libération

    Set reg = Nothing
    Set Matches = Nothing

End Function
Exemple :

?countmatches("c:\temp\long.txt"," ")
 7500 
lien : fr Les Expressions Rationnelles et Access par la pratique

Comment obtenir le chemin relatif d'un fichier
auteurs : Cafeine, Tofalu
Pour obtenir le chemin relatif d'un fichier par rapport à un répertoire, vous pouvez utiliser la fonction suivante :

Function GetRelativePath(ByVal strPath As String, Optional ByVal strPathCurrent As String)

Dim tmpCurr() As String
Dim tmpP() As String
Dim i As Integer
Dim iIndex As Integer

' par défaut on considère que c'est relatif par rapport au chemin courant de la base


If strPathCurrent = "" Then strPathCurrent = CurrentProject.Path
If Right(strPathCurrent, 1) = "\" Then strPathCurrent = Left(strPathCurrent, Len(strPathCurrent) - 1)

If Left(strPath, 1) = Left(strPathCurrent, 1) Then
    ' on recherche la partie commune aux deux chemins


    tmpP = VBA.Split(strPath, "\")
    tmpCurr = VBA.Split(strPathCurrent, "\")
    For iIndex = 0 To IIf(UBound(tmpP) > UBound(tmpCurr), UBound(tmpCurr), UBound(tmpP))
        If tmpP(iIndex) <> tmpCurr(iIndex) Then
            Exit For
        Else
            i = iIndex
        End If
    Next iIndex
    If i = UBound(tmpCurr) Then
        ' c'est un sous répertoire


        For iIndex = i + 1 To UBound(tmpP)
            GetRelativePath = GetRelativePath & tmpP(iIndex) & "\"
        Next iIndex
        GetRelativePath = Left(GetRelativePath, Len(GetRelativePath) - 1)
    Else
        ' il faut remonter de UBound(tmpCurr) - i


        For iIndex = 1 To UBound(tmpCurr) - i
            GetRelativePath = GetRelativePath & "..\"
        Next iIndex
        For iIndex = i + 1 To UBound(tmpP)
            GetRelativePath = GetRelativePath & tmpP(iIndex) & "\"
        Next iIndex
        GetRelativePath = Left(GetRelativePath, Len(GetRelativePath) - 1)
    End If
Else
    ' deux lecteurs différents


    GetRelativePath = strPath
End If

End Function
Le premier paramètre correspond au chemin du fichier ou du dossier, le second correspond au chemin courant.

Exemple :

?getrelativepath("c:\toto\tata\test.xls","c:\tintin")
..\toto\tata\test.xls
?getrelativepath("c:\toto\tata\test.xls","c:\toto\tata")
\test.xls

Comment tester l'existence d'un fichier ?
auteur : vodiem
Cette fonction permet de tester l'existence d'un fichier, elle renvoie True si le fichier existe :
Function existeFileFSO(ByVal fichier As String) As Boolean
Set fs = CreateObject("Scripting.FileSystemObject")
existeFileFSO = fs.FileExists(fichier)
Set fs = Nothing
End Function

Autre méthode en passant par les APIs :
Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" (ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
 
Function existeFileSearchPath(ByVal chemin, fichier As String) As Boolean
    'Requires Windows Vista, Windows XP, or Windows 2000 Professional.
    Dim ResultFileName As String
    Dim pFilePart As Long
    existeFileSearchPath = SearchPath(chemin, fichier, vbNullString, 1, ResultFileName, pFilePart) > 0
End Function
lien : fr http://warin.developpez.com/access/fichiers/

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com