OpenFile, fonction (winbase.h)
Crée, ouvre, rouvre ou supprime un fichier.
Syntaxe
HFILE OpenFile(
[in] LPCSTR lpFileName,
[out] LPOFSTRUCT lpReOpenBuff,
[in] UINT uStyle
);
Paramètres
[in] lpFileName
Nom du fichier.
La chaîne doit se composer de caractères du jeu de caractères Windows 8 bits. La fonction OpenFile ne prend pas en charge les noms de fichiers Unicode ni l’ouverture de canaux nommés.
[out] lpReOpenBuff
Pointeur vers la structure OFSTRUCT qui reçoit des informations sur un fichier lors de sa première ouverture.
La structure peut être utilisée dans les appels suivants à la fonction OpenFile pour afficher un fichier ouvert.
La structure OFSTRUCT contient un membre de chaîne de chemin d’accès dont la longueur est limitée à OFS_MAXPATHNAME caractères, soit 128 caractères. Pour cette raison, vous ne pouvez pas utiliser la fonction OpenFile pour ouvrir un fichier dont la longueur de chemin dépasse 128 caractères. La fonction CreateFile n’a pas cette limite de longueur de chemin.
[in] uStyle
Action à entreprendre.
Ce paramètre peut prendre une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Ignoré.
Pour générer une boîte de dialogue contenant un bouton Annuler , utilisez OF_PROMPT. |
|
Crée un nouveau fichier.
Si le fichier existe, il est tronqué à zéro (0). |
|
Supprime un fichier. |
|
Ouvre un fichier, puis le ferme.
Utilisez cette option pour tester l’existence d’un fichier. |
|
Remplit la structure OFSTRUCT , mais ne fait rien d’autre. |
|
Affiche une boîte de dialogue si un fichier demandé n’existe pas.
Une boîte de dialogue informe un utilisateur que le système ne trouve pas de fichier et qu’elle contient les boutons Réessayer et Annuler . Le bouton Annuler indique à OpenFile de renvoyer un message d’erreur fichier introuvable. |
|
Ouvre un fichier pour l'accès en lecture uniquement. |
|
ouvre un fichier avec des autorisations de lecture et d'écriture. |
|
Ouvre un fichier en utilisant des informations dans la mémoire tampon de réouverture. |
|
Pour les systèmes de fichiers basés sur MS-DOS, ouvre un fichier en mode de compatibilité, permet à n’importe quel processus sur un ordinateur spécifié d’ouvrir le fichier un nombre quelconque de fois.
Les autres efforts d’ouverture d’un fichier avec d’autres modes de partage échouent. Cet indicateur est mappé aux indicateurs FILE_SHARE_READ|FILE_SHARE_WRITE de la fonction CreateFile . |
|
Ouvre un fichier sans refuser l’accès en lecture ou en écriture à d’autres processus.
Sur les systèmes de fichiers MS-DOS, si le fichier a été ouvert en mode de compatibilité par un autre processus, la fonction échoue. Cet indicateur est mappé aux indicateurs FILE_SHARE_READ|FILE_SHARE_WRITE de la fonction CreateFile . |
|
Ouvre un fichier et refuse l’accès en lecture à d’autres processus.
Sur les systèmes de fichiers MS-DOS, si le fichier a été ouvert en mode de compatibilité ou pour un accès en lecture par tout autre processus, la fonction échoue. Cet indicateur est mappé à l’indicateur FILE_SHARE_WRITE de la fonction CreateFile . |
|
Ouvre un fichier et refuse l’accès en écriture à d’autres processus.
Sur les systèmes de fichiers MS-DOS, si un fichier a été ouvert en mode de compatibilité, ou pour un accès en écriture par tout autre processus, la fonction échoue. Cet indicateur est mappé à l’indicateur FILE_SHARE_READ de la fonction CreateFile . |
|
Ouvre un fichier en mode exclusif et refuse l’accès en lecture/écriture à d’autres processus. Si un fichier a été ouvert dans un autre mode pour l’accès en lecture/écriture, même par le processus actuel, la fonction échoue. |
|
Vérifie que la date et l’heure d’un fichier sont les mêmes que lorsqu’il a été ouvert précédemment.
Cela est utile en tant que case activée supplémentaire pour les fichiers en lecture seule. |
|
ouvre un fichier uniquement pour un accès en écriture. |
Valeur retournée
Si la fonction réussit, la valeur de retour spécifie un descripteur de fichier à utiliser lors de l’exécution d’E/S de fichier. Pour fermer le fichier, appelez la fonction CloseHandle à l’aide de ce handle.
Si la fonction échoue, la valeur de retour est HFILE_ERROR. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Si le paramètre lpFileName spécifie un nom de fichier et une extension uniquement, cette fonction recherche un fichier correspondant dans les répertoires suivants et dans l’ordre indiqué :
- Répertoire dans lequel une application est chargée.
- Le répertoire actif.
-
Répertoire système Windows.
Utilisez la fonction GetSystemDirectory pour obtenir le chemin d’accès de ce répertoire.
-
Répertoire système Windows 16 bits.
Il n’existe pas de fonction qui récupère le chemin d’accès de ce répertoire, mais elle fait l’objet d’une recherche.
-
Répertoire Windows.
Utilisez la fonction GetWindowsDirectory pour obtenir le chemin d’accès de ce répertoire.
- Répertoires répertoriés dans la variable d’environnement PATH.
La fonction OpenFile ne prend pas en charge l’indicateur OF_SEARCH pris en charge par la fonction Windows OpenFile 16 bits. L’indicateur OF_SEARCH indique au système de rechercher un fichier correspondant, même lorsqu’un nom de fichier inclut un chemin d’accès complet. Utilisez la fonction SearchPath pour rechercher un fichier.
Une violation de partage se produit si une tentative d’ouverture d’un fichier ou d’un répertoire est effectuée pour suppression sur un ordinateur distant lorsque la valeur du paramètre uStyle est l’indicateur d’accès OF_DELETE OR’ed avec tout autre indicateur d’accès, et que le fichier ou répertoire distant n’a pas été ouvert avec FILE_SHARE_DELETE partage d’accès . Pour éviter la violation de partage dans ce scénario, ouvrez le fichier ou le répertoire distant avec OF_DELETE accès uniquement, ou appelez DeleteFile sans ouvrir au préalable le fichier ou le répertoire pour suppression.
Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.
Technologie | Prise en charge |
---|---|
Protocole Server Message Block (SMB) 3.0 | Oui |
Basculement transparent SMB 3.0 (TFO) | Oui |
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) | Oui |
Système de fichiers du volume partagé de cluster (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
CsvFs effectue les E/S redirigées pour les fichiers compressés.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winbase.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |