begin process at 2012 02 11 19:55:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

suppression repertoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

suppression repertoire

vendredi 1 octobre 2004 à 19:53:43 | suppression repertoire

yserver

Bonjour et merci de lire mon poste

En faite j'ai 2 questions.

- 1 -
Est-il possible de supprimer un repertoire contenant des fichiers? Il me semble que non, il faut d'abord en supprimer tout les fichiers.

- 2 -
Pour supprimer tous les fichiers d'un repertoire, vaut-il mieux utiliser la methode :
- FindFirstFile(...) et FindNextFile(....) pour lister des fichiers, puis DeleteFile(...)
ou
- SHFileOperation avec comme parametre *.*

Merci
vendredi 1 octobre 2004 à 20:50:24 | Re : suppression repertoire

DeAtHCrAsH

Salut,
Pour supprimer un répertoire utilise l'API RemoveDirectory().
En effet il faut que le repertoire soit vide.

Sinon si tu veux faire simple, utilise la fonction systeme et appelle la commande dos del mon_rep pour tout automatisé.


system("del mon_rep");


Shell
vendredi 1 octobre 2004 à 21:54:57 | Re : suppression repertoire

yserver

oui je connais system() mais c'est pas tres elegant les command dos qui s'ouvre et ce ferme. Cela peut faire peure a mes futurs utilisateurs.
vendredi 1 octobre 2004 à 23:29:32 | Re : suppression repertoire

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
FindFirstFile et FindNextFile iront tres bien et c'est la rapidite assuree.

ciao...
BruNews, MVP VC++
samedi 5 novembre 2005 à 01:05:56 | Re : suppression repertoire

heptaeon

J'ai entendu dire que SHFileOperation était meilleur, mais bon la je cherche a l'utiliser ?
samedi 5 novembre 2005 à 01:20:44 | Re : suppression repertoire

BruNews

Administrateur CodeS-SourceS
dépend ce que tu entends par "meilleur", pour la vitesse assurément NON, si tu veux que les boites de confirmation et l'animation soient visibles alors c'est fait pour cela.

ciao...
[ Lien ]
BruNews, MVP VC++
samedi 5 novembre 2005 à 02:44:54 | Re : suppression repertoire

heptaeon

J'entend meilleur car c'est le conseil de la MSDN, et que j'estime que MS connais quant meme l'API qu'il ont programmer.
Quant tu dit pour la vitesse assurément non, tu as fait des benchs pour tester ? Ou d'où te provient ton information ?

samedi 5 novembre 2005 à 02:58:07 | Re : suppression repertoire

heptaeon

Au passage je vais me rendre un peu utile ^^

Pour la première question, je dit OUI :p

SHFILEOPSTRUCT FileOperation; // notre structure d'information
ZeroMemory(&FileOperation,
sizeof(FileOperation)); //On ne sais pas ce qu'on a des base ^^
FileOperation.hwnd = NULL; //Ou le HWND de ta fenetre si tu veux les réponses d'erreure en boite de dialogue
FileOperation.wFunc = FO_DELETE; // On cherchera a effacer ^^
FileOperation.pFrom = "C:\\Ton\\Repertoire\\A_Effacer"; //Le chemin de qui il te faut supprimer
FileOperation.fFlags = FOF_NOCONFIRMATION; //Je en veux pas les confirmation

if(SHFileOperation(&FileOperation))
{
//Il y a eu une erreure
}

samedi 5 novembre 2005 à 11:42:20 | Re : suppression repertoire

BruNews

Administrateur CodeS-SourceS

pFrom DOIT être terminé par un double NULL.

Je ne vois pas sur la page SHFileOperation de MSDN quoi que ce soit qui dise qu'il faut préférer cette fonction aux appels directs de l'API (la vraie de base: DeleteFile, RemoveDirectory, etc...). Ces fonctions très haut niveau du Shell ne sont que des wrapper de l'API, elles simplifient la vie des VBistes et autres bidouilloux mais dans tous les cas elles finissent par appeler l'API.

Des benchs pour savoir si une ligne droite est plus courte que 36 détours, inutile, c'est évident.
Pour info, j'ai légalement les sources de tous les Windows, ce que tu aurais pu comprendre au look de ma signature.

ciao...
[ Lien ]
BruNews, MVP VC++

samedi 5 novembre 2005 à 12:27:56 | Re : suppression repertoire

heptaeon



[Extrais de l'MSDN]

Remarks

The RemoveDirectory function marks a directory for deletion on close. Therefore, the directory is not removed until the last handle to the directory is closed.

To recursively delete the files in a directory, use the SHFileOperation function.

[/Extrais]

Le lien est ici : [ Lien ]

Quant a ta comparaison ligne droite vs détour, je ne suis pas tout a fait de ton avis. On retrouve souvent des fonctions dites "plus haut niveau" plus performante. Simplement car elle ne refond pas toujours les même opération de vérification. Elle utilise des "Sorte de racourcis".

Par contre si tu as le code source de cette fonction et que tu me certifie qu'elle utilise des RemoveDirectory, Je suis de ton avis si c'est bien compiler utiliser une boucle de RemoveDirectory bien faite est plus performante.

Personelement, Je n'ai pas les code sources de windows, donc a toi de voir ce qu'il y a dans le code de cette fonction ^^.


Ps: Juste pour le pFrom, mon code marchais car l'élément suivant est a NULL, mais c'etait un coup de bol :D


1 2

Cette discussion est classée dans : fichiers, supprimer, suppression, repertoire


Répondre à ce message

Sujets en rapport avec ce message

supprimer tout les fichiers d'un répertoire [ par AoD ] je recherche une fonction qui permet de supprimer tout les fichiers d'un répertoire.merci de vite me répondre lister les fichiers (nom, taille...) d'un repertoire en sous windows C++ [ par th3r1ddl3r ] bonjour,voila mon probleme, j'arrive a lister les fichiers d'un repertoire (avec findfirstfile et findnextfile) et dire si ce sont des repertoires ou prob:Récuperer des fichiers! [ par frdestroyers27 ] Bonjours a tous!mon probleme est le suivant.si j'ai un repertoire data dedans il y a des fichier .dat .bmp .wav je voudrait recupérer les nom de tout Suppression d'une sous chaine... Help me !!! [ par typhoonx ] Bonjour,je voudrai savoir si quelqu'un connaitrai une solution pour supprimer une sous chaine d'une chaine... y à t'il une fonction qui le fait ? (en Copie de fichiers et repertoires dans un repertoire distant en C# / C++ [ par LaurentR49 ] Bonjour, Je cherche à savoir comment on peux faire pour copier des fichiers ou des repertoires sur un lecteur distant. j'ai essayer d'utiliser le na Fermeture d'un programme et suppression de fichiers [ par greg515 ] Bonjour, voila je cherche un moyen pour fermer un ou plusieurs processus sous win et également le moyen de supimer n ou pluseurs fichier quelqu'un peu Création et suppression de dossier [ par asmanur ] Bonjour,alors j'ai quelque question à poser sur les fichiers1) Comment crée-t-on un dossier?2)Comment supprime-t-on des fichiers et des dossiers3)Sous private.h et private.rc [ par Scientophage ] J'ai un gros problème : à chaque compilation, mon compilateur (DEV Cpp 4.9.9.0) me crée deux fichiers : *private.h et *private.rc Cela a pour effet de Comparateur de repertoire [ par trapic ] Bonjour à tous,Je recherche un logiciel qui compare deux repertoires et qui indique les différences. Le but étant de supprimé les fichiers identiques listbox afficher détails fichiers d'un repertoire [ par bougnat83 ] bonjourVisual C++ 6.0, MFCj'arrive à afficher dans une listbox la liste des fichiers contenu dans un repertoire donné avec :::SendMessage(hListBox, LB


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,387 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales