UDF > WinAPIEx > Files & Devices > Files >


_WinAPI_SetCompression

D�finit l'�tat de compression d'un fichier ou d'un r�pertoire

#include <WinAPIFiles.au3>
_WinAPI_SetCompression ( $sFilePath, $iCompression )

Param�tres

$sFilePath Le chemin d'acc�s au fichier ou au r�pertoire � compresser.
$iCompression L'�tat de compression. Ce param�tre peut prendre l'une des valeurs suivantes:
$COMPRESSION_FORMAT_NONE
$COMPRESSION_FORMAT_DEFAULT
$COMPRESSION_FORMAT_LZNT1

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0 et d�finit @error <> 0.

Remarque

Si le syst�me de fichiers du volume contenant le fichier ou le r�pertoire sp�cifi� ne prend pas en charge la compression par fichier ou par r�pertoire, la fonction �choue. La compression de fichiers est prise en charge pour les fichiers d'une taille maximum non compress� de 30 giga-octets.

Voir aussi

Consultez FSCTL_SET_COMPRESSION dans la librairie MSDN.

Exemple

#include <APISysConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

Local $sFile = FileOpenDialog('Select File', @ScriptDir, 'All Files (*.*)', 1 + 2)
If @error Then Exit

Switch _WinAPI_GetCompression($sFile)
    Case -1
        MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Compression de fichier', 'Impossible d''effectuer l''op�ration.')
    Case $COMPRESSION_FORMAT_NONE
        If _WinAPI_SetCompression($sFile, $COMPRESSION_FORMAT_DEFAULT) Then
            MsgBox(BitOR($MB_ICONINFORMATION, $MB_SYSTEMMODAL), 'Compression de fichier', 'Le fichier est compress� avec succ�s.')
        Else
            MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Compression de fichier', 'Impossible de compresser le fichier.')
        EndIf
    Case Else
        If MsgBox(BitOR($MB_YESNO, $MB_ICONQUESTION, $MB_SYSTEMMODAL), 'Compression de fichier', 'Le fichier est d�j� compress�.' & @CRLF & @CRLF & 'Je le d�compresse?') = 6 Then
            If _WinAPI_SetCompression($sFile, $COMPRESSION_FORMAT_NONE) Then
                MsgBox(BitOR($MB_ICONINFORMATION, $MB_SYSTEMMODAL), 'Compression de fichier', 'Le fichier est d�compress� avec succ�s.')
            Else
                MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Compression de fichier', 'Impossible de d�compresser le fichier.')
            EndIf
        EndIf
EndSwitch