Je voulais supprimer totalement =E0 partir de mon programme C sous
windows tous les fichiers textes temporaires dans mon r=E9pertoire de
travail et qui sont cr=E9es pendant l'ex=E9cution du programme .
Existe-t- elle une fonction ou une proc=E9dure permettant la suppression
totale de ces fichiers texte ?
Je voulais supprimer totalement à partir de mon programme C sous windows tous les fichiers textes temporaires dans mon répertoire de travail et qui sont crées pendant l'exécution du programme .
Existe-t- elle une fonction ou une procédure permettant la suppression totale de ces fichiers texte ?
Je trouve la fonction remove():
remove("test.txt");
Comment je vais utiliser dans les deux suivants ? 1) si je ne connais pas le nom de fichiers seulement l'extension par exemple *.txt
2) si je connais le nom et l'extension mais pas le nombre de fichier par exemple: test1.txt test2.txt ...... .... testn.txt
ici je ne connais pas en avance le nombre car ces fichiers sont générés par le programme seulement.
il y a autre fonction à part remove() ?
Merci.
Bonjour,
Je voulais supprimer totalement à partir de mon programme C sous
windows tous les fichiers textes temporaires dans mon répertoire de
travail et qui sont crées pendant l'exécution du programme .
Existe-t- elle une fonction ou une procédure permettant la suppression
totale de ces fichiers texte ?
Je trouve la fonction remove():
remove("test.txt");
Comment je vais utiliser dans les deux suivants ?
1) si je ne connais pas le nom de fichiers seulement l'extension par
exemple *.txt
2) si je connais le nom et l'extension mais pas le nombre de fichier
par exemple:
test1.txt
test2.txt
......
....
testn.txt
ici je ne connais pas en avance le nombre car ces fichiers sont
générés par le programme seulement.
Je voulais supprimer totalement à partir de mon programme C sous windows tous les fichiers textes temporaires dans mon répertoire de travail et qui sont crées pendant l'exécution du programme .
Existe-t- elle une fonction ou une procédure permettant la suppression totale de ces fichiers texte ?
Je trouve la fonction remove():
remove("test.txt");
Comment je vais utiliser dans les deux suivants ? 1) si je ne connais pas le nom de fichiers seulement l'extension par exemple *.txt
2) si je connais le nom et l'extension mais pas le nombre de fichier par exemple: test1.txt test2.txt ...... .... testn.txt
ici je ne connais pas en avance le nombre car ces fichiers sont générés par le programme seulement.
il y a autre fonction à part remove() ?
Merci.
Bertrand Lenoir-Welter
> Existe-t- elle une fonction ou une procédure permettant la suppression totale de ces fichiers texte ?
Enumération avec FindFirstFile() / FindNextFile() / FindClose(), suppression avec remove(), suppression du répertoire avec rmdir().
C'est ce que j'utilise et ça marche bien, mais il y a sûrement d'autres moyens.
> Existe-t- elle une fonction ou une procédure permettant la suppression
totale de ces fichiers texte ?
Enumération avec FindFirstFile() / FindNextFile() / FindClose(),
suppression avec remove(), suppression du répertoire avec rmdir().
C'est ce que j'utilise et ça marche bien, mais il y a sûrement d'autres
moyens.
Ca vous permet de supprimer un répertoire complet avec ses sous-répertoires, et ça retourne le nombre de fichiers supprimés. Faites-vous une fonction BackSlashEnd() pour ajouter le backslash éventuellement manquant en fin de chaîne, ce sera plus joli.
Gaffe, ce genre de fonction vous ratiboise vite fait un disque entier. Evitez de lui passer "C:" en argument...
> Pouvez vous me donner un exemple d'utilisation de ces fonctions ?
Dites, vous n'avez pas un texte d'aide sur windows.h ? Pas même un petit
accès à MSDN ? Ou vous avez la flemme ?
Allez, c'est mon jour de bonté :
int DeleteDirTree(char *Dir)
{
int NbDeleted=0;
BOOL More;
char Str[256];
HANDLE FindHandle;
WIN32_FIND_DATA FindData;
Ca vous permet de supprimer un répertoire complet avec ses
sous-répertoires, et ça retourne le nombre de fichiers supprimés.
Faites-vous une fonction BackSlashEnd() pour ajouter le backslash
éventuellement manquant en fin de chaîne, ce sera plus joli.
Gaffe, ce genre de fonction vous ratiboise vite fait un disque entier.
Evitez de lui passer "C:" en argument...
Ca vous permet de supprimer un répertoire complet avec ses sous-répertoires, et ça retourne le nombre de fichiers supprimés. Faites-vous une fonction BackSlashEnd() pour ajouter le backslash éventuellement manquant en fin de chaîne, ce sera plus joli.
Gaffe, ce genre de fonction vous ratiboise vite fait un disque entier. Evitez de lui passer "C:" en argument...
Christian ASTOR
On 18 sep, 21:08, Bertrand Lenoir-Welter <bertrand-dot-2008-at-galaad- dot-net> wrote:
Dites, vous n'avez pas un texte d'aide sur windows.h ? Pas même un peti t accès à MSDN ? Ou vous avez la flemme ?
C'est vrai qu'il y a quand même un minimum d'efforts à faire : ça prend 30 secondes pour trouver n exemples dans MSDN...
Mais c'est plus simple avec SHFO (on peut enlever FOF_NOCONFIRMATION pour plus de sûreté) : { TCHAR szFile[MAX_PATH + 1]; lstrcpy(szFile, TEXT("c:toto*.*")); szFile[lstrlen(szFile) + 1] = TEXT(' '); SHFILEOPSTRUCT fos; ZeroMemory(&fos, sizeof(fos)); fos.hwnd = NULL; fos.wFunc = FO_DELETE; fos.pFrom = szFile; fos.fFlags = FOF_SILENT | FOF_NOCONFIRMATION; int nReturn = SHFileOperation(&fos); }
On 18 sep, 21:08, Bertrand Lenoir-Welter <bertrand-dot-2008-at-galaad-
dot-net> wrote:
Dites, vous n'avez pas un texte d'aide sur windows.h ? Pas même un peti t accès à MSDN ? Ou vous avez la flemme ?
C'est vrai qu'il y a quand même un minimum d'efforts à faire : ça
prend 30 secondes pour trouver n exemples dans MSDN...
Mais c'est plus simple avec SHFO (on peut enlever FOF_NOCONFIRMATION
pour plus de sûreté) :
{
TCHAR szFile[MAX_PATH + 1];
lstrcpy(szFile, TEXT("c:\toto\*.*"));
szFile[lstrlen(szFile) + 1] = TEXT(' ');
SHFILEOPSTRUCT fos;
ZeroMemory(&fos, sizeof(fos));
fos.hwnd = NULL;
fos.wFunc = FO_DELETE;
fos.pFrom = szFile;
fos.fFlags = FOF_SILENT | FOF_NOCONFIRMATION;
int nReturn = SHFileOperation(&fos);
}