OpenFile, fonction (winbase.h)
Crée, ouvre, rouvert 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 comporter des 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 avec une longueur de chemin d’accès supérieure à 128 caractères. La fonction CreateFile n’a pas cette limitation de longueur de chemin d’accès.
[in] uStyle
Action à entreprendre.
Ce paramètre peut être une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Ignoré.
Pour produire 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’il contient des boutons Réessayer et Annuler . Le bouton Annuler dirige OpenFile pour retourner un message d’erreur introuvable dans un fichier. |
|
Ouvre un fichier pour l'accès en lecture uniquement. |
|
ouvre un fichier avec des autorisations de lecture et d'écriture. |
|
Ouvre un fichier à l’aide d’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.
D’autres efforts pour ouvrir 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 tout 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 l’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 l’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 en tout 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 identiques à celles qui ont été ouvertes précédemment.
Cela est utile en tant que vérification 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 handle 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.
Notes
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 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 est recherchée.
-
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 dirige le système pour 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 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 le répertoire distant n’a pas été ouvert avec FILE_SHARE_DELETE accès au partage. 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 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 SMB (Server Message Block) 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 |
Cluster Shared Volume File System (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
CsvFs effectue des 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 (include Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |