IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API, COM et SDKs Delphi Discussion :

Comment supprimer des fichiers en nombre ?


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut Comment supprimer des fichiers en nombre ?
    Bonjour,

    Je recherche une commande ou une méthode qui me permette de supprimer plusieurs fichiers d'un coup sur le disque.
    Actuellement j'ai une boucle qui utilise "DeleteFile", mais le nombre de fichier est trop important et le temps de traitement trop long.
    Existe t'il quelque chose de similaire à la commande dos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Del H:\Test\Image*.*
    Merci d'avance.
    @+


    Pensez au tag

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    pkoi pas la commande dos elle meme ....
    JEtte un coup d'oeil sur la Faq Section Execution d'application externe.

    ShellExecute .....
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Merci pour l'info.

    Effectivement cela marche bien avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShellExecute (0, 'open', 'cmd.exe', '/C Del H:\Test\image*.*', '', SW_HIDE);
    Mais n'y a t'il pas une fonction intégrée qui permette de supprimer des fichiers sans passer par "cmd.exe"
    @+


    Pensez au tag

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Ouais ..... "FormatDisk" .....

    Non sans blague ... a part un FindFirst/Next combiné a un DeleteFile .... je vois pas.

    De toute maniere si elle existait .. soit elle passe par la .... soit par cmd.exe ... je vois pas comment autrement .....

    Pour gagner en temps .. essaye de te rapprocher au plus pres des API Windows (Windows.pas) pour chercher toi meme tes ficheirs sans passer par un FindFirst/Next qui eventuelement effectue du code en trop dont tu n'as pas besoin ... mais tu pourra pas plus a mon avis.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  5. #5
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  6. #6
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Merci Nono Pour l'info.

    J'ai essayer d'utiliser l'API plutôt que ta fonction pascal afin d'alléger mon code.
    Cependant j'ai une erreur à l'exécution dans le module Kernel32.

    Voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TApercu.Button2Click(Sender: TObject);
    Var
       Cmd:TSHFileOpStruct;
    begin
      Try
        Cmd.wFunc:=FO_DELETE;
        Cmd.pfrom:='H:\Test\*.*';
        Cmd.fFlags:=FOF_NOCONFIRMATION;
        ShFileOperation(cmd);
      Finally
      End;
    End;
    Merci de l'aide.
    @+


    Pensez au tag

  7. #7
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    c'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cmd.pFrom:=PChar('H:\Test\*.*');
    Plutot ?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  8. #8
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Non,

    Toujours le même message :

    "Violation d'accès à l'adresse 77E5A86B dans le module 'kernel32.dll'. Lecture de l'adresse 29BA0000."
    @+


    Pensez au tag

  9. #9
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Tu es sûr de bien remplir tous les champs nécessaires de Cmd?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  10. #10
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Non car je ne sais pas quels sont les champs obligatoires.
    Je me suis basé sur l'exemple du lien de Nono40.
    @+


    Pensez au tag

  11. #11
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Tu dois certainement avoir un Handle (HWND) à remplir non? Si c'est le cas, mets-le à
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.Handle;
    ...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  12. #12
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Non

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        cmd.wnd:=Application.Handle;
    et
    Et j'ai toujours le même message.
    @+


    Pensez au tag

  13. #13
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Essaye ceci :
    Les paramètre ne sont pas des PChar mais des chaines à DOUBLE zéro terminal...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TApercu.Button2Click(Sender: TObject);
    Var
       Cmd:TSHFileOpStruct;
    begin
      Try
        Cmd.wFunc:=FO_DELETE;
        Cmd.pfrom:='H:\Test\*.*'#0; // Un #0 ajouté volontairement
        Cmd.pto:=Nil;
        Cmd.fFlags:=FOF_NOCONFIRMATION;
        ShFileOperation(cmd);
      Finally
      End;
    End;
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  14. #14
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Merci à toi oh grand Nono...
    @+


    Pensez au tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/04/2015, 16h23
  2. Réponses: 4
    Dernier message: 22/04/2014, 13h32
  3. Comment supprimer des éléments d'un fichier?
    Par quent197 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/05/2008, 09h30
  4. [CKEditor] FCKeditor filemanager : Comment supprimer des images, fichiers?
    Par spolt dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 06/12/2007, 09h54
  5. Comment supprimer des fichiers lorsqu'on quitte une interface
    Par ZAYDOUN dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 23/04/2007, 23h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo