FileOpen, fonction

Mise à jour : novembre 2007

Ouvre un fichier pour des opérations d'entrée ou de sortie.

La fonctionnalité My permet une meilleure productivité et de meilleures performances dans les opérations d'E/S sur fichier que FileOpen. Pour plus d'informations, consultez My.Computer.FileSystem, objet.

Public Sub FileOpen( _
   ByVal FileNumber As Integer, _
   ByVal FileName As String, _
   ByVal Mode As OpenMode, _
   Optional ByVal Access As OpenAccess = OpenAccess.Default, _
   Optional ByVal Share As OpenShare = OpenShare.Default, _
   Optional ByVal RecordLength As Integer = -1 _
)

Paramètres

  • FileNumber
    Requis. Tout numéro de fichier valide. Utilisez la fonction FreeFile pour obtenir le prochain numéro de fichier disponible.

  • FileName
    Requis. Expression String qui spécifie un nom de fichier, peut comprendre un répertoire ou un dossier, et un lecteur.

  • Mode
    Requis. Énumération spécifiant le mode d'accès au fichier : Append, Binary, Input, Output ou Random. (Pour plus d'informations, consultez OpenMode, énumération).

  • Access
    Facultatif. Énumération spécifiant les opérations autorisées sur le fichier ouvert : Read, Write ou ReadWrite. Valeurs par défaut affectées à ReadWrite. (Pour plus d'informations, consultez OpenAccess, énumération).

  • Share
    Facultatif. Énumération spécifiant les opérations non autorisées sur le fichier ouvert par d'autres processus : Shared, Lock Read, Lock Write et Lock Read Write. Valeurs par défaut affectées à Lock Read Write. (Pour plus d'informations, consultez OpenShare, énumération).

  • RecordLength
    Facultatif. Nombre inférieur ou égal à 32 767 (octets). Pour les fichiers ouverts en mode Random, cette valeur représente la longueur de l'enregistrement. Pour les fichiers séquentiels, elle représente le nombre de caractères contenus dans la mémoire tampon.

Exceptions

Type d'exception

Numéro de l'erreur

Condition

ArgumentException

5

Access, Share ou Mode non valide.

ArgumentException

5

Le fichier WriteOnly est ouvert pour Input.

ArgumentException

5

Le fichier ReadOnly est ouvert pour Output.

ArgumentException

5

Le fichier ReadOnly est ouvert pour Append.

ArgumentException

5

La longueur d'enregistrement est négative (et différente de -1).

IOException

52

FileNumber n'est pas valide (<-1 ou >255) ou FileNumber est déjà en cours d'utilisation.

IOException

55

FileName est déjà ouvert ou FileName n'est pas valide.

Consultez la colonne « Numéro d'erreur » si vous mettez à niveau des applications Visual Basic 6.0 qui utilisent la gestion non structurée des erreurs. (Vous pouvez comparer le numéro d'erreur par rapport à Number, propriété (objet Err).) Toutefois, lorsque cela est possible, vous devez envisager de remplacer un tel contrôle d'erreurs par Vue d'ensemble de la gestion structurée des exceptions pour Visual Basic.

Notes

La fonction FileOpen est fournie pour la compatibilité descendante et peut affecter la performance. Pour les applications non héritées (legacy), l'objet My.Computer.FileSystem offre de meilleures performances. Pour plus d'informations, consultez Accès au fichier avec Visual Basic.

Vous devez ouvrir un fichier avant qu'une opération d'E/S puisse être exécutée dessus. FileOpen alloue une mémoire tampon pour l'E/S du fichier et détermine le mode d'accès à utiliser avec la mémoire tampon.

Note de sécurité :

Lors de l'écriture dans un fichier, une application devra peut-être créer un fichier, si le fichier dans lequel elle essaie d'écrire n'existe pas. Pour ce faire, elle nécessite une autorisation sur le répertoire dans lequel le fichier doit être créé. Cependant, si le fichier spécifié par FileName existe, l'application n'a besoin que de l'autorisation Write sur ce fichier. Dans la mesure du possible, et pour plus de sécurité, créez le fichier au moment du déploiement et accordez une autorisation Write pour ce fichier uniquement plutôt que pour l'ensemble du répertoire. Pour plus de sécurité, écrivez des données dans des répertoires utilisateur plutôt que dans le répertoire racine ou le répertoire Program Files.

Le canal à ouvrir peut être trouvé à l'aide de la fonction FreeFile().

Note de sécurité :

La fonction FileOpen nécessite un accès Read de l'énumération FileIOPermissionAccess, ce qui peut affecter son exécution dans les situations où le niveau de confiance n'est pas total. Pour plus d'informations, consultez FileIOPermissionAccess et Demande d'autorisations.

Exemple

Cet exemple illustre différentes utilisations possibles de la fonction FileOpen pour permettre l'entrée et la sortie dans un fichier.

Le code suivant ouvre le fichier TestFile en mode Input.

FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)

Cet exemple ouvre le fichier en mode Binary pour des opérations d'écriture uniquement.

FileOpen(1, "TESTFILE", OpenMode.Binary,OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)

L'exemple suivant ouvre le fichier en mode Random. Le fichier contient les enregistrements de la structure Person.

Structure Person
    <VBFixedString(30)> Dim Name As String
    Dim ID As Integer
End Structure
Public Sub ExampleMethod()
    ' Count 30 for the string, plus 4 for the integer.
    FileOpen(1, "TESTFILE", OpenMode.Random, , , 34)
    ' Close before reopening in another mode.
    FileClose(1)
End Sub

Cet exemple de code ouvre le fichier en mode Output ; n'importe quel processus peut lire ou écrire dans le fichier.

FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)

Cet exemple de code ouvre le fichier en mode Binary pour la lecture ; les autres processus ne peuvent pas le lire.

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read, _
   OpenShare.LockRead)

Notes du développeur sur Smart Device

Cette fonction n'est pas prise en charge.

Configuration requise

Espace de noms :Microsoft.VisualBasic

**Module :**FileSystem

**Assembly :**bibliothèque Visual Basic Runtime (dans Microsoft.VisualBasic.dll)

Voir aussi

Référence

FileClose, fonction

FreeFile, fonction

Autres ressources

Lecture à partir de fichiers en Visual Basic

Écriture dans des fichiers en Visual Basic