suppression des fichiers

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

Merci.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
programmation
Le #20171201
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.

il y a autre fonction à part remove() ?


Merci.
Bertrand Lenoir-Welter
Le #20172071
> 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.
Christian ASTOR
Le #20172491
On 18 sep, 06:28, programmation
Existe-t- elle une fonction ou une procédure permettant la suppression
totale de ces fichiers texte ?



SHFileOperation()
programmation
Le #20176111
> Enumération avec FindFirstFile() / FindNextFile() / FindClose(),
suppression avec remove(), suppression du répertoire avec rmdir().



Pouvez vous me donner un exemple d'utilisation de ces fonctions ?

SHFileOperation()



Pouvez vous me donner un exemple de l'utilisation de cette fonction?

Merci.
Bertrand Lenoir-Welter
Le #20176921
> 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;

if(!Dir[0])
return(0);
strcpy(Str,Dir);
if(Str[strlen(Str)-1]!='\')
strcat(Str,"\");
strcat(Str,"*.*"); // Wildcard à indiquer ici
FindHandle=FindFirstFile(Str,&FindData);
More=(FindHandle!=INVALID_HANDLE_VALUE);
while(More) {
strcpy(Str,Dir);
if(Str[strlen(Str)-1]!='\')
strcat(Str,"\");
strcat(Str,FindData.cFileName);
if(FindData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
if(FindData.cFileName[0]!='.')
{
NbDeleted+ÞleteDirTree(Str);
rmdir(Str);
}
}
else
if(!remove(Str))
NbDeleted++;
More=(FindNextFile(FindHandle,&FindData));
}
FindClose(FindHandle);
strcpy(Str,Dir);
rmdir(Str);
return(NbDeleted);
}

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
Le #20178671
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);
}
Bertrand Lenoir-Welter
Le #20179591
> Mais c'est plus simple avec SHFO (on peut enlever FOF_NOCONFIRMATION
pour plus de sûreté)



Ah, je découvre. Ca supprime aussi les répertoires ?
programmation
Le #20195221
Bonjour,

J'ai besoin de vos aides.

Je n'arrive pas à bien utiliser les fonctions 'FindFirstFile' et
'DeleteFile'.

Les fichiers textes sont dans le répertoire:
c:copcop

Je voulais supprimer ces fichiers textes

Voici mon essai:

#include #include #include #include
int main()

{

DeleteFile("C:\cop\cop\fichier*.txt",FALSE);

}


Après la compilation, j'ai un warning :

1>c:copcopcopie.c(10) : warning C4020: 'DeleteFileA' : paramètres
réels trop nombreux

Avez vous une solution ?

Merci.
programmation
Le #20195761
Voici le code:
<code type="c">
#include #include #include #include
int main()
{

DeleteFile("C:\cop\cop\fichier*.txt");
return ;
</code>
}

Mais,cette fonction DeleteFile ne supprime rien :(


il y a la fonction 'FindFirstFile' mais je n'arrive pas à bien
utiliser.

Pouvez me donner un exemple de cette fonction ?

S'il vous plait, Aidez moi !!!

Merci.
Christian ASTOR
Le #20196051
On 19 sep, 12:10, Bertrand Lenoir-Welter <bertrand-dot-2008-at-galaad-
dot-net> wrote:
> Mais c'est plus simple avec SHFO (on peut enlever FOF_NOCONFIRMATION
> pour plus de sûreté)

Ah, je découvre. Ca supprime aussi les répertoires ?



Oui, ça fait aussi la récursion...
Publicité
Poster une réponse
Anonyme