Interruption 21h |
Fonction 17h |
Renommer un/des fichier(s) par le FCB |
---|---|---|
CP/M, DOS 1.0+, OS/2, Windows NT |
Description
Cette fonction permet d'effectuer le renommage d'un ou des fichier(s) spécifié en utilisant l'ancienne méthode du FCB (File Control Block).
Entrée
Registre | Valeur ou description | ||
---|---|---|---|
AH | 17h | ||
DS:DX | Cette paire de registres permet d'indiquer l'adresse du tampon FCB du fichier. Vous pouvez utiliser le bloc de FCB normal : | ||
Déplacement | Longueur | Description | |
00h | 1 octet | Ce champ contient l'unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...) | |
01h | 8 octets (4 mots) | Ce champ contient l'ancien nom du fichier avec des espaces s'il n'est pas assez long | |
09h | 3 octets | Ce champ contient l'ancienne extension du fichier avec des espaces s'il n'est pas assez long | |
0Ch | 5 octets | Ce champ doit toujours être à 00h | |
11h | 8 octets (4 mots) | Ce champ contient le nouveau nom du fichier avec des espaces s'il n'est pas assez long | |
19h | 3 octets | Ce champ contient le nouvel extension du fichier avec des espaces s'il n'est pas assez long | |
1Ch | 9 octets | Ce champ doit toujours être à 00h | |
ou le bloc de FCB étendue : | |||
Déplacement | Longueur | Description | |
00h | 1 octet | Ce champ contient un identificateur de FCB étendu (FFh) | |
01h | 5 octets | Ce champ est réservé pour un usage interne ou futur | |
06h | 1 octet | Ce champ contient les attributs de fichier. | |
07h | 1 octet | Ce champ contient l'ancienne unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...) | |
08h | 8 octets | Ce champ contient le nom du fichier avec des espaces s'il n'est pas assez long | |
10h | 3 octets | Ce champ contient l'extension du fichier avec des espaces s'il n'est pas assez long | |
13h | 4 octets (2 mots) | Ce champ doit toujours être à 00h | |
17h | 1 octet | Ce champ contient le nouvel unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...) | |
18h | 8 octets | Ce champ contient le nouveau nom du fichier avec des espaces s'il n'est pas assez long | |
20h | 3 octets | Ce champ contient la nouvelle extension du fichier avec des espaces s'il n'est pas assez long | |
23h | 9 octets | Ce champ doit toujours être à 00h |
Sortie
Registre | Valeur ou description | |
---|---|---|
AL | Ce registre permet d'indiquer le résultat de l'opération : | |
Valeur | Description | |
0 | Cette code indique que le fichier a été renommé avec succès | |
255 | Cette code indique que le fichier n'a pu être trouvé |
Remarques
- Vous pouvez intégré des caractères génériques «?», où le point d'interrogation désigne n'importe quel lettre, pour trouver des fichiers. Chaque fichier correspondant à la première spécification de fichier sera renommé pour correspondre à la deuxième spécification de fichier.
- Le bloc de contrôle de fichier spécial a un code d'unité de disque, un nom de fichier et une extension à la position habituelle (octets 00h à 0Bh) et un deuxième nom de fichier commençant 6 octets après le premier (déplacement 11h).
- Si la deuxième spécification de fichier en contient les caractères génériques «?», les lettres correspondantes dans le premier nom de fichier restent inchangées.
- La fonction se termine si le nouveau nom à affecter à un fichier correspond à celui d'un fichier existant.
- A partir de la version 2.0 du système d'exploitation DOS, un FCB étendu peut être utilisé avec cette fonction pour renommer un répertoire.
- A partir de la version 2.0 du système d'exploitation DOS, l'interruption 21h, la fonction 56h, permettant un accès complet à la structure de répertoire hiérarchique, doit être utilisée de préférence à cette fonction.
- A partir de la version 2.0 du système d'exploitation DOS, il est possible d'effectuer le renommage des répertoires ou des volumes en utilisant les FCB de format étendu et les attributs correcte (soit 10h pour répertoire, ou 08h pour Volume) :
Déplacement | Longueur | Description |
---|---|---|
00h | 1 octet | Ce champ contient un identificateur de FCB étendu (FFh) |
01h | 5 octets | Ce champ est réservé pour un usage interne ou futur |
06h | 1 octet | Ce champ contient les attributs de fichier (mettre 10h pour dire qu'on renomme un répertoire, 08h pour renommer un volume). |
07h | 1 octet | Ce champ contient l'ancienne unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...) |
08h | 8 octets | Ce champ contient le nom du fichier, nom du répertoire (si déplacement 06h=10h) ou du volume (si déplacement 06h=08h) avec des espaces s'il n'est pas assez long |
10h | 3 octets | Ce champ contient l'extension du fichier, du répertoire ou du volume avec des espaces s'il n'est pas assez long |
13h | 4 octets (2 mots) | Ce champ doit toujours être à 00h |
17h | 1 octet | Ce champ contient le nouvel unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...) |
18h | 8 octets | Ce champ contient le nouveau nom du fichier, nom du répertoire (si déplacement 06h=10h) ou du volume (si déplacement 06h=08h) avec des espaces s'il n'est pas assez long |
20h | 3 octets | Ce champ contient la nouvelle extension du fichier, du répertoire ou du volume avec des espaces s'il n'est pas assez long |
23h | 9 octets | Ce champ doit toujours être à 00h |
Références
La Bible du PC: Programmation système - Sixième Edition, Edition Micro-Application, Michael Tischer, 1996, ISBN: 2-7429-0544-8, page 1554.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 156 à 158.
Quick Reference: Programmer avec les fonctions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04061-8, page 32 à 33.
Dernière mise à jour : Jeudi, le 3 mars 2016