Effacer des fichiers et les retrouver dans la corbeille (Recycler bin)

Le
Marc Sylvain
Comment faire pour effacer un ou plusieurs

Fichiers et être sûr qui ce retrouver dans ma corbeille



Car avec la fonction Kill ou DeleteFile je ne retrouve

aucun fichier dans ma corbeille



Merci

Marc
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
François Picalausa
Le #15412101
On 4月10日, 午後7:56, "Marc Sylvain"
Comment faire pour effacer un ou plusieurs
Fichiers et être sûr qui ce retrouver dans ma corbeille



Hello,

En employant SHFileOperation, avec FO_DELETE, et le flag
FOF_ALLOWUNDO, ça devrait fonctionner.
Pour l'emploi de cette API, voir:
http://faq.vb.free.fr/index.php?question5
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/fu nctions/shfileoperation.asp

François
Jacques93
Le #15412091
Bonjour Marc Sylvain,
Marc Sylvain a écrit :
Comment faire pour effacer un ou plusieurs

Fichiers et être sûr qui ce retrouver dans ma corbeille



Car avec la fonction Kill ou DeleteFile je ne retrouve

aucun fichier dans ma corbeille




Voir du côté de l'API 'SHFileOperation' avec FO_DELETE et FOF_ALLOWUNDO


Un exemple, non testé sous XP, à vérifier :


--
Cordialement,

Jacques.
Marc Sylvain
Le #15412081
J'ai reussi de cette facon MAIS:
comment faire pour enlever ce msgbox
"Voulez-vous vraiment envoyer 999997B18.psm à la corbeille"


Public Type SHFILEOPSTRUCT
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
Public Const FO_DELETE = &H3
Public Const FOF_ALLOWUNDO = &H40
Public Declare Function SHFileOperation Lib "shell32.dll" _
Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long
Sub Main()
RecycleBin ("C:Travail999997B18.psm")
End Sub
Public Function RecycleBin(ByVal fileName As String) As Long
Dim SHFileOp As SHFILEOPSTRUCT
With SHFileOp
.wFunc = FO_DELETE
.pFrom = fileName
.fFlags = FOF_ALLOWUNDO
End With
Recycle = SHFileOperation(SHFileOp)
End Function




"Jacques93" a écrit dans le message de news:

Bonjour Marc Sylvain,
Marc Sylvain a écrit :
Comment faire pour effacer un ou plusieurs

Fichiers et être sûr qui ce retrouver dans ma corbeille



Car avec la fonction Kill ou DeleteFile je ne retrouve

aucun fichier dans ma corbeille




Voir du côté de l'API 'SHFileOperation' avec FO_DELETE et FOF_ALLOWUNDO


Un exemple, non testé sous XP, à vérifier :


--
Cordialement,

Jacques.


Jacques93
Le #15412071
Marc Sylvain a écrit :
J'ai reussi de cette facon MAIS:
comment faire pour enlever ce msgbox
"Voulez-vous vraiment envoyer 999997B18.psm à la corbeille"


Public Type SHFILEOPSTRUCT
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
Public Const FO_DELETE = &H3
Public Const FOF_ALLOWUNDO = &H40
Public Declare Function SHFileOperation Lib "shell32.dll" _
Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long
Sub Main()
RecycleBin ("C:Travail999997B18.psm")
End Sub
Public Function RecycleBin(ByVal fileName As String) As Long
Dim SHFileOp As SHFILEOPSTRUCT
With SHFileOp
.wFunc = FO_DELETE
.pFrom = fileName
.fFlags = FOF_ALLOWUNDO
End With
Recycle = SHFileOperation(SHFileOp)
End Function




En déclarant la constante :

Public Const FOF_NOCONFIRMATION = &H10

et en l'ajoutant à .Flags :

.fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION

--
Cordialement,

Jacques.
Marc Sylvain
Le #15412061
Merci Jacques MAIS:

Avec le .fFlags = FOF_NOCONFIRMATION
le fichier s'efface mais je ne le retouve pas dans la corbeille

Sous Windows XP pro (sp2)



"Jacques93" a écrit dans le message de news:
uGyV$
Marc Sylvain a écrit :
J'ai reussi de cette facon MAIS:
comment faire pour enlever ce msgbox
"Voulez-vous vraiment envoyer 999997B18.psm à la corbeille"


Public Type SHFILEOPSTRUCT
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
Public Const FO_DELETE = &H3
Public Const FOF_ALLOWUNDO = &H40
Public Declare Function SHFileOperation Lib "shell32.dll" _
Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long
Sub Main()
RecycleBin ("C:Travail999997B18.psm")
End Sub
Public Function RecycleBin(ByVal fileName As String) As Long
Dim SHFileOp As SHFILEOPSTRUCT
With SHFileOp
.wFunc = FO_DELETE
.pFrom = fileName
.fFlags = FOF_ALLOWUNDO
End With
Recycle = SHFileOperation(SHFileOp)
End Function




En déclarant la constante :

Public Const FOF_NOCONFIRMATION = &H10

et en l'ajoutant à .Flags :

.fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION

--
Cordialement,

Jacques.


Marc Sylvain
Le #15412051
OOPS!!!! je vien de comprendre je doit ajouter les deux et non Un ou l'Autre

Desole
ca fonctionne

Merci encore
Marc



"Marc Sylvain" O$
Merci Jacques MAIS:

Avec le .fFlags = FOF_NOCONFIRMATION
le fichier s'efface mais je ne le retouve pas dans la corbeille

Sous Windows XP pro (sp2)



"Jacques93" a écrit dans le message de news:
uGyV$
Marc Sylvain a écrit :
J'ai reussi de cette facon MAIS:
comment faire pour enlever ce msgbox
"Voulez-vous vraiment envoyer 999997B18.psm à la corbeille"


Public Type SHFILEOPSTRUCT
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
Public Const FO_DELETE = &H3
Public Const FOF_ALLOWUNDO = &H40
Public Declare Function SHFileOperation Lib "shell32.dll" _
Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long
Sub Main()
RecycleBin ("C:Travail999997B18.psm")
End Sub
Public Function RecycleBin(ByVal fileName As String) As Long
Dim SHFileOp As SHFILEOPSTRUCT
With SHFileOp
.wFunc = FO_DELETE
.pFrom = fileName
.fFlags = FOF_ALLOWUNDO
End With
Recycle = SHFileOperation(SHFileOp)
End Function




En déclarant la constante :

Public Const FOF_NOCONFIRMATION = &H10

et en l'ajoutant à .Flags :

.fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION

--
Cordialement,

Jacques.






Jacques93
Le #15412031
Marc Sylvain a écrit :
OOPS!!!! je vien de comprendre je doit ajouter les deux et non Un ou l'Autre

Desole
ca fonctionne

Merci encore



De rien, merci du retour :-)
Les flags sont ici une combinaison des diverses valeurs possibles, à
condition qu'elles ne soient pas incompatibles entre elles, ce qui n'est
pas le cas ici.

--
Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme