Renommer un fichier avec les interruptions.

Renommer un fichier avec les interruptions. - Programmation

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 ??

Reply

Marsh Posté le 05-12-2001 à 20:51:46   

Reply

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...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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.

Reply

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]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed