renomer un fichier [VC++] - Programmation
Marsh Posté le 16-10-2001 à 12:30:25
hier j'ai regardé cela rapidement dans la MSDN
il me semble bien que la fonction _ulink est obsolète non ?
sinon je n'ai pas trouver de fonction pour renomer un fichier non plus
Marsh Posté le 16-10-2001 à 13:00:32
rename, _wrename
Rename a file or directory.
int rename( const char *oldname, const char *newname );
int _wrename( const wchar_t *oldname, const wchar_t *newname );
Routine Required Header Compatibility
rename <io.h> or <stdio.h> ANSI, Win 95, Win NT
_wrename <stdio.h> or <wchar.h> Win NT
For additional compatibility information, see Compatibility in the Introduction.
Libraries
LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version
Return Value
Each of these functions returns 0 if it is successful. On an error, the function returns a nonzero value and sets errno to one of the following values:
EACCES
File or directory specified by newname already exists or could not be created (invalid path); or oldname is a directory and newname specifies a different path.
ENOENT
File or path specified by oldname not found.
EINVAL
Name contains invalid characters.
For other possible return values, see _doserrno, _errno, syserrlist, and _sys_nerr.
Parameters
oldname
Pointer to old name
newname
Pointer to new name
Remarks
The rename function renames the file or directory specified by oldname to the name given by newname. The old name must be the path of an existing file or directory. The new name must not be the name of an existing file or directory. You can use rename to move a file from one directory or device to another by giving a different path in the newname argument. However, you cannot use rename to move a directory. Directories can be renamed, but not moved.
_wrename is a wide-character version of _rename; the arguments to _wrename are wide-character strings. _wrename and _rename behave identically otherwise.
Generic-Text Routine Mappings
TCHAR.H Routine _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined
_trename rename rename _wrename
Example
/* RENAMER.C: This program attempts to rename a file
* named RENAMER.OBJ to RENAMER.JBO. For this operation
* to succeed, a file named RENAMER.OBJ must exist and
* a file named RENAMER.JBO must not exist.
*/
#include <stdio.h>
void main( void )
{
int result;
char old[] = "RENAMER.OBJ", new[] = "RENAMER.JBO";
/* Attempt to rename file: */
result = rename( old, new );
if( result != 0 )
printf( "Could not rename '%s'\n", old );
else
printf( "File '%s' renamed to '%s'\n", old, new );
}
Output
File 'RENAMER.OBJ' renamed to 'RENAMER.JBO'
File Handling Routines
Marsh Posté le 16-10-2001 à 14:01:56
de rien
Par contre si tu pouvais me dire comment tester si un rep existe ca m'aiderait
Marsh Posté le 16-10-2001 à 14:08:59
ok je vais voir.
J'ai reussi a contourner le pb avec CreateDirectory mais je vais essayer quand meme
merci
Marsh Posté le 16-10-2001 à 14:11:15
apparemment c'est que pour les fichiers, mais c'est pas grave je me debrouille autrement
Marsh Posté le 16-10-2001 à 14:14:34
Godbout a écrit a écrit : de rien Par contre si tu pouvais me dire comment tester si un rep existe ca m'aiderait |
Pour un fichier j'essaie de l'ouvrir en lecture, et s'il n'exite pas il y a une erreur...
Marsh Posté le 16-10-2001 à 14:15:28
y a une fonction DirectoryExists( ) mais je sais pas si c un truc de C++Builder/Delphi ou un truc de l'API Windows.
Marsh Posté le 16-10-2001 à 14:16:27
BENB a écrit a écrit : Pour un fichier j'essaie de l'ouvrir en lecture, et s'il n'exite pas il y a une erreur... |
Ben j'ai pas trouve la fonction pour ouvrir un rep.
Alors ce que je fais c'est je cree le rep, et si j'ai un message d'erreur alors c'est qu'il existe deja.
Si y a pas de message, alors je le detruit aussitot.
Enfin bon ca marche koi.
Marsh Posté le 16-10-2001 à 14:17:01
antp a écrit a écrit : y a une fonction DirectoryExists( ) mais je sais pas si c un truc de C++Builder/Delphi ou un truc de l'API Windows. |
pas de trace dans le msdn
Marsh Posté le 16-10-2001 à 14:30:08
a propos du msdn online .. quelle est l'url pour windows classique (2000 par ex).. par lorsque je fais une recherche je tombe tjr sur les fonction pour windows Ce .. et dans l'arboressence de la library je suis tjr sous CE ..
Marsh Posté le 16-10-2001 à 15:14:47
oui je sais bien c'est celle si dotn je parle .. mais lorsque je fais une recherche dans la library il me donne des fonctions pour Windows CE. (je susi dans un sous rep de windows CE dans l'arboressence..)
Marsh Posté le 16-10-2001 à 16:03:44
Dans "Shlwapi.h", t'as PathFileExists (szNomFivOuRep)... par contre je sais pas d'ou y sort ce .h
Marsh Posté le 16-10-2001 à 16:06:11
j'ai le fichier dans le dossier include de vc.
par contre j'ai un gros pb de pointeur (apparemment) avec mon path.
Il est tout beau tout niquel, et juste apres le CreateDirectory y a plus que de la merde dedans
Marsh Posté le 16-10-2001 à 16:08:09
bah essaye d'autres choses, t'as que l'embaras du choix apparement pour voir si un répertoir existe !
Marsh Posté le 16-10-2001 à 16:10:38
ouais mais ca m'enerve, ca veut dire que je chie dans ma programmation et ca j'aime pas !
Marsh Posté le 16-10-2001 à 16:16:09
Putain mais merde c'est quand meme terrible !!
Avec PathFileExists ca me fait la meme chose.
Apres etre passe dans la fonction tout fout le camp !!
Marsh Posté le 16-10-2001 à 16:38:04
Qd je definis mon char * a l'interieur de la fonction ca passe.
Mais quand il vient en arguments, la il fait nimp
Ca vient de koi ?
Marsh Posté le 16-10-2001 à 16:52:49
PathIsDirectory fonctionne, heureusement.
Pour les deux autres fonctions je comprend vraiment pas
Marsh Posté le 16-10-2001 à 12:20:14
ouais je sait
jai honte de demander ca mais le je seche jai trouve la fonction _ulink pour detruire un fichier donc a part copier le fichier a la main puis deleter l'ancien voit pas d'autres methode pour l'instant a moin ke M$ ais deja fait une chtite classe ki fait ca sinon je la coderais c'est po la mort