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

C++/CLI Discussion :

Comment envoyer un fichier à la corbeille?


Sujet :

C++/CLI

  1. #1
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut Comment envoyer un fichier à la corbeille?
    Salut à tous,

    Je cherche comment envoyer un fichier à la corbeille avec Visual C++.

    L'instruction supprime directement le fichier sans passer par la corbeille et n'admet aucun paramètre pour passer par la corbeille!!
    Comment faire cette simple chose? Je ne trouve rien sur MSDN et sur Developpez.com

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116

  3. #3
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Merci Bacelar... Mais je n'y comprends rien.
    J'avais déja repéré cette fonction lors de mes recherches mais je ne comprends rien à son utilisation!!!

    J'ai aussi trouvé des trucs comme :

    A cette page :
    CSIDL_BITBUCKET FOLDERID_RecycleBinFolder : The virtual folder that contains the objects in the user's Recycle Bin.
    Et à cette page :
    CSIDL_BITBUCKET : File system directory that contains file objects in the user's Recycle Bin. The location of this directory is not in the registry; it is marked with the hidden and system attributes to prevent the user from moving or deleting it.
    Je n'arrive pas à comprendre comment dire à windows que je veux mettre tel fichier à la corbeille! Je ne trouve pas le chemin de la corbeille dans les dossiers spéciaux de windows. J'ai bien compris que la 'corbeille' est un dossier virtuel, mais comment y mettre un fichier?
    Est-il possible de faire cela par un 'MoveTo ( ... )', ou bien es-ce un flag de la classe 'File' qu'il faut mettre à true ou false pour que le fichier soit dans la corbeille?

    Après avoir passé 4 jours à mettre mon programme au point, je croyais avoir presque fini...Et là, ça fait 3 jours de plus à chercher comment faire une chose aussi banale qu'envoyer un fichier à la corbeille avec 'visual C++'!!!!!! Je craque

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Bon alors comme je n'ai pas d'autres pistes, je commence à fouiller du coté de 'SHFileOperation'...

    Je vous tiens au courant...

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Si vous vous noyez avec les structures en paramètre de la fonction "SHFileOperation", rassurez-vous, vous êtes loin d'être le seul.

    Je vois deux approches pour vous simplifier la vie.

    1- Approche Full .NET
    Vous êtes en C++/CLI (on est dans le forum C++/CLI ), vous pouvez donc utiliser tous les assemblies .NET.

    Dans les assemblies .NET "Microsoft.VisualBasic.dll" il y a des méthodes DeleteFile dans la classe FileSystem du NameSpace Microsoft.VisualBasic.FileIO.
    http://msdn.microsoft.com/fr-fr/libr...eletefile.aspx

    Il ne vous reste donc cas ajouter la référence à Microsoft.VisualBasic.dll dans votre projet, ajouter un using Microsoft.VisualBasic.FileIO, et d'utiliser ces méthodes statiques DeleteFile de la classe FileSystem.

    Un seul inconvénient, c'est une dépendance vers un assembly exotique pour du C++.

    2- Approche à la chinoise (copie par l'exemple).
    Utilisez ce fabuleux outil qu'est reflector (http://www.red-gate.com/products/dot...ent/reflector/)
    Regardez le code des méthodes indiquées dans la première approche pour voir comment les développeurs de Microsoft ont utilisé la fonction SHFileOperation pour implémenter le "DeleteFile".


    P.S. : Moi être un gros faignant, moi utiliser approche 1.

  6. #6
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Encore merci Paul,

    Après avoir éxaminé de plus près l'approche "Full .NET", j'ai très rapidement pu arriver à mes fins :
    J'ai donc inclu le fichier "Microsoft.VisualBasic.dll" à mon projet ( Propriétés communes -> Structure de références ->Ajouter une nouvelle référence )
    puis dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String^ fichier = "FichierAVirer.txt";
    Microsoft::VisualBasic::FileIO::FileSystem::DeleteFile (
    	fichier,
    	Microsoft::VisualBasic::FileIO::UIOption::AllDialogs,
    	Microsoft::VisualBasic::FileIO::RecycleOption::SendToRecycleBin );
    ...et le fichier à virer : "FichierAVirer.txt" se retrouve dans la corbeille

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

Discussions similaires

  1. comment envoyer un fichier d'un client vers un serveur
    Par nad30 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/05/2007, 13h55
  2. Réponses: 14
    Dernier message: 14/03/2007, 19h32
  3. Réponses: 2
    Dernier message: 22/06/2006, 12h09
  4. Envoyer un fichier à la corbeille
    Par Orakle dans le forum Access
    Réponses: 13
    Dernier message: 23/05/2006, 12h51
  5. Serveur/Client UDP: comment envoyer un fichier avec mon code
    Par danje dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 21/12/2005, 14h54

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