UDF > WinAPIEx > ShellEx >


_WinAPI_ShellFileOperation

Copie, déplace, renomme ou supprime un objet du système de fichiers

#include <WinAPIShellEx.au3>
_WinAPI_ShellFileOperation ( $sFrom, $sTo, $iFunc, $iFlags [, $sTitle = '' [, $hParent = 0]] )

Paramètres

$sFrom Chaîne unique ou tableau de chaîne qui contient le(s) nom(s) des fichiers sources. Ces noms doivent être des chemins pleinement qualifiés pour éviter des résultats inattendus.
$sTo Chaîne unique ou tableau de chaîne qui contient le fichier de destination ou le(s) nom(s) des répertoire(s) (le cas échéant).
Ces noms doivent être des chemins pleinement qualifiés pour prévenir des résultats inattendus.
$iFunc Une valeur qui indique l'opération à effectuer. Ce paramètre peut prendre l'une des valeurs suivantes:
$FO_COPY
$FO_DELETE
$FO_MOVE
$FO_RENAME
$iFlags Flags qui contrôlent l'opération sur le fichier. Ce paramètre peut prendre l'une des valeurs suivantes:
$FOF_ALLOWUNDO
$FOF_CONFIRMMOUSE
$FOF_FILESONLY
$FOF_MULTIDESTFILES
$FOF_NOCONFIRMATION
$FOF_NOCONFIRMMKDIR
$FOF_NO_CONNECTED_ELEMENTS
$FOF_NOCOPYSECURITYATTRIBS
$FOF_NOERRORUI
$FOF_NORECURSEREPARSE
$FOF_NORECURSION
$FOF_RENAMEONCOLLISION
$FOF_SILENT
$FOF_SIMPLEPROGRESS
$FOF_WANTMAPPINGHANDLE
$FOF_WANTNUKEWARNING
$FOF_NO_UI
$sTitle [optionnel] Le titre d'une boîte de dialogue de progression. Ce paramètre est utilisé seulement si $iFlags inclus le flag $FOF_SIMPLEPROGRESS.
$hParent [optionnel] Handle de la boîte de dialogue pour afficher des informations sur l'état de l'opération sur le fichier.

Valeur de retour

Succès: Retourne la structure $tagSHFILEOPSTRUCT qui contient des informations supplémentaires.
Échec: Définit @error, @extended peut être défini à l'une des valeurs suivantes:
113 - Les fichiers source et destination sont les mêmes.
114 - Plusieurs chemins de fichiers ont été spécifiés dans la mémoire tampon de la source, mais seulement un chemin de fichier de destination.
115 - L'opération Rename a été spécifiée, mais le chemin de destination est un répertoire différent. Utilisez l'opération Move à la place.
116 - La source est un répertoire racine, qui ne peut être déplacé ou renommé.
117 - L'opération a été annulée par l'utilisateur, ou silencieusement annulée si les flags appropriés ont été fournis à _WinAPI_ShellFileOperation().
118 - La destination est un sous-arbre de la source.
120 - Les paramètres de sécurité refusent l'accès à la source.
121 - Le chemin de la source ou de la destination a dépassé ou dépasserait MAX_PATH.
122 - L'opération a impliqué plusieurs chemins de destination, qui peuvent échouer dans le cas d'une opération de déplacement.
124 - Le chemin de la source ou de la destination ou les deux n'était pas valide.
125 - La source et la destination ont le même dossier parent.
126 - Le chemin de destination est un fichier existant.
128 - Le chemin de destination est un dossier existant.
129 - Le nom du fichier dépasse MAX_PATH.
130 - La destination est un CD-ROM en lecture seule, sans doute non formaté.
131 - La destination est un DVD en lecture seule, sans doute non formaté.
132 - La destination est un CD-ROM accessible en écriture, sans doute non formaté.
133 - Le fichier impliqué dans l'opération est trop grand pour LE média de destination ou le système de fichier.
134 - La source est un CD-ROM en lecture seule, sans doute non formaté.
135 - La source est un DVD en lecture seule, sans doute non formaté.
136 - La source est un CD-ROM accessible en écriture, sans doute non formaté.
183 - MAX_PATH a été dépassé pendant l'opération.
026 - Une erreur inconnue s'est produite. Cela est généralement dû à un chemin non valide dans la source ou la destination.
536 - Une erreur non spécifiée s'est produite sur la destination.
652 - Destination est un répertoire racine et ne peut pas être renommé.

Remarque

Vous devez utiliser des noms de chemin d'accès complet avec cette fonction. Son utilisation avec des chemins relatifs n'est pas thread-safe.

Voir aussi

Consultez SHFileOperation dans la librairie MSDN.

Exemple

#include <APIShellExConstants.au3>
#include <WinAPIFiles.au3>
#include <WinAPIShellEx.au3>

; Crée un fichier temporaire
Local $sTemp = _WinAPI_GetTempFileName(@TempDir)

ShellExecute('::{645FF040-5081-101B-9F08-00AA002F954E}')

; Supprime le fichier vers la corbeille
If FileExists($sTemp) Then
    _WinAPI_ShellFileOperation($sTemp, '', $FO_DELETE, BitOR($FOF_ALLOWUNDO, $FOF_NO_UI))
EndIf