UDF > WinAPIEx > Files & Devices > Files >


_WinAPI_GetCompression

Obtient l'état actuel de la compression d'un fichier ou d'un répertoire

#include <WinAPIFiles.au3>
_WinAPI_GetCompression ( $sFilePath )

Paramètre

$sFilePath Le chemin d'accès au fichier ou au répertoire dont vous voulez l'état de compression.

Valeur de retour

Succès: Retourne l'état actuel de compression ($COMPRESSION_FORMAT_*).
Échec: Retourne (-1) et définit @error <> 0.

Voir aussi

Consultez FSCTL_GET_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