Envoyer un fichier à la corbeille de windows

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 070 fois - Téléchargée 43 fois

Contenu du snippet

Pour ne pas être aussi direct que la méthode "KILL", c'est pas du top, mais c'est pratique et ça peut aider les débutants comme ça m'a aidé...
Copiez ce code, placez le dans un nouveau module et utilisez la fonction: Corbeillation...

Source / Exemple :


' Depuis votre programme commandez la fonction:
'Corbeillation ("c:\machin\AFAC.bmp")... avec bien sûr n'importe quel autre fichier...
' Et vous aurez la boite vous proposant de jeter ce fichier à la
' corbeille (si vs cliquez sur OUI)

Private Type Fichier
     hwnd As Long
     wFunc As Long
     pFrom As String
     pTo As String
     fFlags As Integer
     fAnyOperationsAborted As Boolean
     hNameMappings As Long
     lpszProgressTitle As String
End Type
'API utilisée pour jeter des fichiers à la corbeille
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As Fichier) As Long
'Constantes nécessaires
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40

Public Function Corbeillation(Fic As String) As Boolean
Dim FicAvirer As Fichier
Dim lReturn As Long
If Dir$(Fic) = "" Then Exit Function
With FicAvirer
    .wFunc = FO_DELETE
    .pFrom = Fic     'fichier sélectionné
    .fFlags = FOF_ALLOWUNDO
End With
'Jette le fichier à la poubelle
lReturn = SHFileOperation(FicAvirer)
End Function

A voir également

Ajouter un commentaire

Commentaires

cs_DARKSIDIOUS
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
78 -
Très pratique, merci

DARK SIDIOUS
Alan71
Messages postés
530
Date d'inscription
lundi 3 juin 2002
Statut
Membre
Dernière intervention
13 juin 2004
-
Dja vu !

(mé ca peut être pratique sans koi !)
Manu_12
Messages postés
11
Date d'inscription
vendredi 2 janvier 2004
Statut
Membre
Dernière intervention
22 octobre 2007
-
Petit complément d'info sur cette fonction (SHFile operation). On peux supprimer plusieurs fichiers d'un coup.
Il faut pour ca que ta variable de type string soit composé des noms complets de fichiers espacés d'un caractère null (chr(0)) et que la chaine soit terminée par un caractère null supplémentaire
exemple :

private suppFiles()
'lvlistview etant une listview avec multiselection
dim i as integer, Dfiles as string
'passe tous les éléments de la liste pour trouver ceux selectionnés
For i = 1 To lvListView.ListItems.Count
'si la condition est vrai (sélectionné) renvoi le contenu de "l'item" qui contient le chemin complet
If lvListView.ListItems(nblist).Selected True Then Dfiles Dfiles & lvListView.ListItems.Item(nblist) & chr(0)
next i
'rajotue un caractère null a la fin
Dfiles = Dfiles & chr(0)
'passe a la fonction corbeillation la chaine ainsi constitué
Corbeillation (Dfiles)
end sub

NOTA :
Par contre l'isntruction if dir (fic) = "" devietn caduque dans cette hypothèse.
Pour garder ce garde fou vous pouvez :
- soit :
utiliser la fonction If dir$(lvListView.ListItems.Item(nblist) ) =""
dans la "sub" ci dessus et ne pas ajotuer la chaine si le fichier n'existe pas,
- soit :
créer un tableau a l'interieur de la fonction "corbeillation" a partir de la fonction split
split (fic,chr(0))
Cette fonction créé un tableau avec une entrée pour chaque chaine.
A partir de la on peux tester individuellement toutes les entrées du tableau par la fonction dir()
ex :
for i = lbound(fic) to ubound(fic)
if dir(fic(i))="" then exit function
next i

heu..c pigé ? :)
cs_aligator
Messages postés
18
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
15 mai 2008
-
Bonjour,
on peut aussi ainsi déposer un folder complet dans la corbeille, il suffit de suprimer la ligne :

If Dir$(Fic) = "" Then Exit Function

JP

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.