Renommer un fichier avec les interruptions. - Programmation
Marsh Posté le 05-12-2001 à 21:28:30
le but c'est utiliser l'interruption ou renommer le fichier ?
pcq il me semble qu'il y a plus simple pour renommer...
Marsh Posté le 05-12-2001 à 21:31:12
Cette fonction permet de renommer un fichier ou de le déplacer dans un autre répertoire d'une unité de mémoire de masse. Le transfert ne peut toutefois se faire que dans les limites des différents répertoires d'un même périphérique. Il est donc impossible de déplacer de cette façon un fichier d'un répertoire du disque dur dans un répertoire d'une disquette.
Entrée :
AH = 56h
DS = Adresse de segment de l'ancien nom de fichier
DX = Adresse d'offset de l'ancien nom de fichier
ES = Adresse de segment du nouveau nom de fichier
DI = Adresse d'offset du nouveau nom de fichier
Sortie :
Flag Carry = 0 : Tout va bien
Flag Carry = 1 : Erreur, dans ce cas AX = Code d'erreur
2 : Fichier non trouvé
3 : Chemin non trouvé
5 : Accès refusé
11 : Périphérique différent
Remarques :
· Les noms de fichiers doivent être fournis sous forme de chaînes ASCII terminées par un caractère de fin (code ASCII 0). Ces noms de fichiers peuvent comporter une désignation de périphérique, une spécification de chemin complète, le nom de fichier proprement dit, mais pas de jokers. Si la désignation de périphérique ou la spécification de chemin sont omises, l'accès se fera sur le périphérique actuel ou sur le répertoire actuel.
· Une erreur peut se produire si le fichier est censé être transféré dans le répertoire racine alors que ce dernier est déjà plein.
· Cette fonction ne permet pas d'accéder aux sous-répertoires ou aux noms de volumes.
· Le contenu des registres BX, CX, DX, SI, DI, BP, CS, DS, SS et ES n'est pas modifié par cette fonction.
Je veux l'utiliser pour renommer un fichier donné en un autre. ( Je suis en train de faire un gestionnaire de fichiers sous DOS en C. ) Vous avez mieux pour renommer ? J'utilise Borland Turbo C/C++ 3.
Marsh Posté le 05-12-2001 à 22:06:30
rename dans stdio.h
Trouvé dans la doc de borland C++ 3.1 ....
[edtdd]--Message édité par [SDF]Poire--[/edtdd]
Marsh Posté le 05-12-2001 à 20:51:46
char fichier[1024] = "a:\\essai.txt";
char fichier2[1024] = "a:\\bato.bat";
void renommer_fichier(char ancien_nom[], char nouveau_nom[])
{
union REGS reg;
struct SREGS s;
reg.h.ah = 0x56;
s.ds = FP_SEG(ancien_nom);
reg.x.dx = FP_OFF(ancien_nom);
s.es = nouveau_nom;
reg.x.di = nouveau_nom;
int86x(0x21, ®, ®, &s);
}
Quelqu'un peut me dire ce qui ne vas pas ??