IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Sommaire > Fichiers
        Comment créer, copier, déplacer, supprimer un fichier ?
        Comment obtenir les attributs d'un fichier ou d'un répertoire?
        Comment obtenir la liste des fichiers et des sous-répertoires d'un répertoire
        Comment lire et écrire dans un fichier texte
        Comment lire et écrire dans un fichier binaire ?
        Comment surveiller les modifications d'un fichier grâce aux notifications système?
        Comment récupérer le nom d'un fichier, lorsque j'ai le chemin complet ?
        Comment afficher ou écrire correctement les caractères accentués dans mes fichiers ?

        


Comment créer, copier, déplacer, supprimer un fichier ?
auteur : abelman
Pour créer, copier, déplacer ou supprimer un fichier, on utilise la classe System.IO.File

Imports System.IO Module FileMan Sub Main() Try 'Création d'un fichier vide. FileStream fs = File.Create("myfile.txt") fs.Close() Console.WriteLine("fichier myfile.txt créé") 'Copie de fichier File.Copy("myfile.txt", "copyofmyfile.txt") Console.WriteLine("fichier myfile.txt copié vers copyofmyfile.txt") 'Déplacement de fichier File.Move("copyofmyfile.txt", "c:\copyofmyfile.txt") Console.WriteLine("fichier copyofmyfile.txt déplacé vers c:\copyofmyfile.txt") 'Supression fichier File.Delete("c:\copyofmyfile.txt") Console.WriteLine("Fichier c:\copyofmyfile.txt supprimé") Catch ex As Exception Debug.WriteLine(ex.ToString) Console.WriteLine(ex.Message) Finally 'Fin du programme Console.WriteLine("Tapez sur entrée pour sortir ...") Console.ReadLine() End Try End Sub End Module
lien :  System.IO.File

Comment obtenir les attributs d'un fichier ou d'un répertoire?
auteur : abelman
On utilise la méthode GetAttributes de la classe System.IO.File

Imports System.IO Sub GetFileAttributes(ByVal sFilename As String) Dim flagAttr As FileAttributes = File.GetAttributes(sFilename) Console.WriteLine("Créé le {0} à {1}", _ File.GetCreationTime(sFilename).ToShortDateString, _ File.GetCreationTime(sFilename).ToShortTimeString) Console.WriteLine("Modifié le {0} à {1}", _ File.GetLastWriteTime(sFilename).ToShortDateString, _ File.GetLastWriteTime(sFilename).ToShortTimeString) Console.WriteLine("Dernier accès le {0} à {1}", _ File.GetLastAccessTime(sFilename).ToShortDateString, _ File.GetLastAccessTime(sFilename).ToShortTimeString) Console.WriteLine("Attributs du fichier, lecteur ou repertoire {0}", sFilename) If (flagAttr And FileAttributes.Archive) = FileAttributes.Archive Then Console.WriteLine(FileAttributes.Archive.ToString) End If If (flagAttr And FileAttributes.Compressed) = FileAttributes.Compressed Then Console.WriteLine(FileAttributes.Compressed.ToString) End If If (flagAttr And FileAttributes.Device) = FileAttributes.Device Then Console.WriteLine(FileAttributes.Device.ToString) End If If (flagAttr And FileAttributes.Directory) = FileAttributes.Directory Then Console.WriteLine(FileAttributes.Directory.ToString) End If If (flagAttr And FileAttributes.Encrypted) = FileAttributes.Encrypted Then Console.WriteLine(FileAttributes.Encrypted.ToString) End If If (flagAttr And FileAttributes.Hidden) = FileAttributes.Hidden Then Console.WriteLine(FileAttributes.Hidden.ToString) End If If (flagAttr And FileAttributes.Normal) = FileAttributes.Normal Then Console.WriteLine(FileAttributes.Normal.ToString) If (flagAttr And FileAttributes.NotContentIndexed) = FileAttributes.NotContentIndexed Then Console.WriteLine(FileAttributes.NotContentIndexed.ToString) End If If (flagAttr And FileAttributes.Offline) = FileAttributes.Offline Then Console.WriteLine(FileAttributes.Offline.ToString) End If 'Ne marche pas pour les répertoires apparement If (flagAttr And FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then Console.WriteLine(FileAttributes.ReadOnly.ToString) End If If (flagAttr And FileAttributes.ReparsePoint) = FileAttributes.ReparsePoint Then Console.WriteLine(FileAttributes.ReparsePoint.ToString) End If If (flagAttr And FileAttributes.SparseFile) = FileAttributes.SparseFile Then Console.WriteLine(FileAttributes.SparseFile.ToString) End If If (flagAttr And FileAttributes.System) = FileAttributes.System Then Console.WriteLine(FileAttributes.System.ToString) End If If (flagAttr And FileAttributes.Temporary) = FileAttributes.Temporary Then Console.WriteLine(FileAttributes.Temporary.ToString) End If End Sub
lien :  System.IO.File

Comment obtenir la liste des fichiers et des sous-répertoires d'un répertoire
auteur : abelman
On utilise la fonction GetFileSystemEntries de la classe System.IO.Directory

Imports System.IO Sub Dir(Optional ByVal sDirectory As String = ".") Dim sFiles() As String Dim i As Integer sFiles = Directory.GetFileSystemEntries(sDirectory) 'pour avoir les noms des fichiers et sous repertoire For i = 0 To sFiles.GetUpperBound(0) Console.WriteLine(sFiles(i)) Next End Sub
lien :  System.IO.Directory

Comment lire et écrire dans un fichier texte
auteur : abelman
Nous allons ouvrir un fichier texte et le remplir si il n'existe pas encore.
Nous afficherons ensuite son contenu à l'écran.
On utiliser pour cela les classes System.IO.StreamReader pour la lecture et System.IO.StreamWriter pour l'écriture

Imports System.IO Sub FichierTexte(ByVal NomFichier As String) Dim sr As StreamReader Dim sw As StreamWriter Dim sLine As String Try If Not File.Exists(NomFichier) Then 'Le fichier n'existe pas. On le crée sw = New StreamWriter(NomFichier) sw.WriteLine("Bonjour. Il nous sommes le {0} et il est {1} ", _ DateTime.Now.ToLongDateString, _ DateTime.Now.ToLongTimeString) sw.Close() sw = Nothing 'Remarque : On peut utiliser sw = File.AppendText(NomFichier) pour ajouter 'du texte à un fichier existant End If 'Ouverture du fichier et Ecriture du contenu du fichier sur la console sr = New StreamReader(NomFichier) Console.WriteLine("Debut du fichier") sLine = sr.ReadLine() While Not sLine Is Nothing Console.WriteLine(sLine) sLine = sr.ReadLine() End While Console.WriteLine("Fin du fichier") Finally 'Fermeture streamreader If Not IsNothing(sr) Then sr.Close() 'Fermeture streamwriter If Not IsNothing(sw) Then sw.Close() End Try End Sub
lien :  System.IO.StreamWriter
lien :  System.IO.StreamReader

Comment lire et écrire dans un fichier binaire ?
auteur : abelman
Nous allons ouvrir un fichier binaire et le remplir (d'entiers) si il existe pas encore.
Nous afficherons son contenu à l'écran.
On utilise pour cela les classes System.IO.BinaryReader pour la lecture et System.IO.BinaryWriter pour l'écriture.

Imports System.IO Sub FichierBinaire(ByVal NomFichier As String) Dim br As BinaryReader Dim bw As BinaryWriter Dim fs As FileStream Dim i As Integer Try If Not File.Exists(NomFichier) Then 'Le fichier n'existe pas. On le crée bw = New BinaryWriter(File.Create(NomFichier)) For i = 0 To 9 bw.Write(i) Next bw.Close() End If 'Ouverture du fichier et Ecriture du contenu du fichier sur la console fs = File.Open(NomFichier, FileMode.Open) br = New BinaryReader(fs) Console.WriteLine("Debut du fichier") While fs.Position < fs.Length Console.Write(br.ReadInt32()) End While Console.WriteLine("{0}Fin du fichier", ControlChars.CrLf) Finally 'Fermeture Binaryreader If Not IsNothing(br) Then br.Close() 'Fermeture Binarywriter If Not IsNothing(bw) Then bw.Close() End Try End Sub
lien :  System.IO.BinaryReader
lien :  System.IO.BinaryWriter

Comment surveiller les modifications d'un fichier grâce aux notifications système?
auteur : abelman
Windows envoie des notifications qui permettent de surveiller les modifications apportées au syteme de fichier.
Cela se fait de la manière suivante en utilisant la classe System.IO.FileSystemWatcher.
Le code suivant est à placer dans une classe ou un module utilisé dans un projet Console.

Imports System.IO Sub Watch(ByVal sPath As String, Optional ByVal sFilter As String = "*") 'On peut utiliser les '*' avec sFilter Dim fw As New FileSystemWatcher(sPath, sFilter) 'On ajoute les handler pour surveiller les évènements qu'on souhaite. AddHandler fw.Changed, AddressOf OnChanged AddHandler fw.Renamed, AddressOf OnRenamed AddHandler fw.Created, AddressOf OnChanged AddHandler fw.Deleted, AddressOf OnChanged AddHandler fw.Error, AddressOf OnError 'On surveillera aussi les sous répertoires fw.IncludeSubdirectories = True ' Mettre cette propriété à True démarre la surveillance des modification. La mettre à false l'arrête. Dans notre exemple, elle sera à true durant tout le programme fw.EnableRaisingEvents = True End Sub Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs) Console.WriteLine("File {0} {1}", e.FullPath, e.ChangeType) End Sub Sub OnRenamed(ByVal source As Object, ByVal e As RenamedEventArgs) Console.WriteLine("File {0} renamed to {1}", e.OldFullPath, e.FullPath) End Sub Sub OnError(ByVal source As Object, ByVal e As ErrorEventArgs) Dim ex As Exception = e.GetException() Debug.WriteLine(ex.ToString()) Console.WriteLine(ex.Message) End Sub
Et voici l'utilisation de la fonction Watch

Watch("c:\monfichier.txt") 'Ou Watch("c:\*.*")
lien :  System.IO.FileSystemWatcher

Comment récupérer le nom d'un fichier, lorsque j'ai le chemin complet ?
auteur : abelman
Vous devez utiliser la méthode GetFileName de la classe System.IO.Path qui vous permet de récupérer le nom du fichier.

Dim fileName As String = "C:\toto.tx" Dim name As String = System.IO.Path.GetFileName(fileName) Console.WriteLine(name)

Comment afficher ou écrire correctement les caractères accentués dans mes fichiers ?
auteur : abelman
Les fichiers sont ouverts avec l'encodage unicode par défaut dans .NET.
Il en résulte que les caractères accentués par exemple ne s'affichent pas correctement.
Vous devez spécifier le type d'encodage à utiliser, pour la lecture/écriture de votre fichier. Exemple pour la lecture

Imports System.IO Imports System.Text Dim strReader As StreamReader = new System.IO.StreamReader(filePath,Encoding.Default)
Ici, on récupère l'encodage courant et on l'applique lors de l'ouverture du fichier par le StreamReader.
On peut faire exactement la même chose avec les StreamWriter


        

Consultez les autres F.A.Q's

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Abel Mandengue Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.