Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

7 réponses
Avatar
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

7 réponses

Avatar
François Picalausa
On 4月10日, 午後7:56, "Marc Sylvain" <marc.sylv wrote:
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
Avatar
Jacques93
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

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shfileoperation.asp>

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

<http://support.microsoft.com/kb/154005/fr>

--
Cordialement,

Jacques.
Avatar
Marc Sylvain
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

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shfileoperation.asp>

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

<http://support.microsoft.com/kb/154005/fr>

--
Cordialement,

Jacques.


Avatar
Jacques93
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.
Avatar
Marc Sylvain
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.


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

Desole
ca fonctionne

Merci encore
Marc



"Marc Sylvain" a écrit dans le message de news:
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.






Avatar
Jacques93
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.