ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Définir et obtenir les attributs sur les dossiers et fichiers du système   



L'auteur

eto_dermezel
France France
Membre Simple
# 0000000003
enregistré le 12/10/2004

http://etodermezel.no-ip.com/
48 ans

de la société YNEDY COMMUNICATION
Fiche personnelle


Note des membres
pas de note

Contributions > 05 - API et appels systèmes

Définir et obtenir les attributs sur les dossiers et fichiers du système
# 0000000199
ajouté le 26/05/2005 09:33:38 et modifié le 26/05/2005
consulté 5192 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0

Description

Voici 2 fonctions qui permettent d'attribuer et d'obtenir des attributs sur les fichiers et Dossiers du système:

Très simples d'utilisation :

Pour obtenir les attributs d'un fichier, dossier :
m.chaineAttributs=_GetfileAttributs('c:\Mondossier\Monfichier.ext')

Pour définit les attributs d'un fichier, dossier :
=_SetFileAttributs("c:\MonDossier\Monfichier.ext","ARSH") // Par Exemple

Valeur des paramètres usuels possibles :

AttributeMeaning
FILE_ATTRIBUTE_ARCHIVEThe file or directory is an archive file. Applications use this attribute to mark files for backup or removal.
FILE_ATTRIBUTE_COMPRESSEDThe file or directory is compressed. For a file, this means that all of the data in the file is compressed. For a directory, this means that compression is the default for newly created files and subdirectories.
FILE_ATTRIBUTE_DIRECTORYThe handle identifies a directory.
FILE_ATTRIBUTE_ENCRYPTEDThe file or directory is encrypted. For a file, this means that all data in the file is encrypted. For a directory, this means that encryption is the default for newly created files and subdirectories.
FILE_ATTRIBUTE_HIDDENThe file or directory is hidden. It is not included in an ordinary directory listing.
FILE_ATTRIBUTE_NORMALThe file or directory has no other attributes set. This attribute is valid only if used alone.
FILE_ATTRIBUTE_OFFLINEThe data of the file is not immediately available. This attribute indicates that the file data has been physically moved to offline storage. This attribute is used by Remote Storage, the hierarchical storage management software. Applications should not arbitrarily change this attribute.
FILE_ATTRIBUTE_READONLYThe file or directory is read-only. Applications can read the file but cannot write to it or delete it. In the case of a directory, applications cannot delete it.
FILE_ATTRIBUTE_REPARSE_POINTThe file or directory has an associated reparse point.
FILE_ATTRIBUTE_SPARSE_FILEThe file is a sparse file.
FILE_ATTRIBUTE_SYSTEMThe file or directory is part of the operating system or is used exclusively by the operating system.
FILE_ATTRIBUTE_TEMPORARYThe file is being used for temporary storage. File systems avoid writing data back to mass storage if sufficient cache memory is available, because often the application deletes the temporary file shortly after the handle is closed. In that case, the system can entirely avoid writing the data. Otherwise, the data will be written after the handle is closed.

Code source :
FUNCTION _GetFileAttributs
    LPARAMETERS  lpFileName

    LOCAL _nAttributs,_cAttributs

    DECLARE INTEGER GetFileAttributes IN kernel32 STRING lpFileName

    _nAttributs=GetFileAttributes (lpFileName)
    IF _nAttributs=-1
        RETURN ''
    ENDIF

    _cAttributs=''

    If BITAND(_nAttributs,1)=1 && FILE_ATTRIBUTE_READONLY
        _cAttributs=_cAttributs+'R'
    ENDIF

    If BITAND(_nAttributs,2)=2 && FILE_ATTRIBUTE_HIDDEN
        _cAttributs=_cAttributs+'H'
    ENDIF

    If BITAND(_nAttributs,4)=4 && FILE_ATTRIBUTE_SYSTEM
        _cAttributs=_cAttributs+'S'
    ENDIF

    If BITAND(_nAttributs,16)=16 && FILE_ATTRIBUTE_DIRECTORY
        _cAttributs=_cAttributs+'D'
    ENDIF

    If BITAND(_nAttributs,32)=32 && FILE_ATTRIBUTE_ARCHIVE
        _cAttributs=_cAttributs+'A'
    ENDIF

    If BITAND(_nAttributs,128)=128 && FILE_ATTRIBUTE_NORMAL
        _cAttributs=_cAttributs+'N'
    ENDIF

    If BITAND(_nAttributs,512)=512 && FILE_ATTRIBUTE_TEMPORARY
        _cAttributs=_cAttributs+'T'
    ENDIF

    If BITAND(_nAttributs,2048)=2048 && FILE_ATTRIBUTE_COMPRESSED
        _cAttributs=_cAttributs+'C'
    ENDIF

RETURN _cAttributs

FUNCTION _SetFileAttributs
    LPARAMETERS  lpFileName,_cAttributs

    LOCAL _nAttributs

    DECLARE SHORT SetFileAttributes IN kernel32 STRING lpFileName, INTEGER dwFileAttributes

    _nAttributs=0
    If AT('R',_cAttributs)>0
        _nAttributs=_nAttributs+1
    ENDIF

    If AT('H',_cAttributs)>0
        _nAttributs=_nAttributs+2
    ENDIF

    If AT('S',_cAttributs)>0
        _nAttributs=_nAttributs+4
    ENDIF

    If AT('D',_cAttributs)>0
        _nAttributs=_nAttributs+16
    ENDIF

    If AT('A',_cAttributs)>0
        _nAttributs=_nAttributs+32
    ENDIF

    If AT('N',_cAttributs)>0
        _nAttributs=_nAttributs+128
    ENDIF

    If AT('T',_cAttributs)>0
        _nAttributs=_nAttributs+512
    ENDIF

    If AT('C',_cAttributs)>0
        _nAttributs=_nAttributs+2048
    ENDIF

    If AT('Z',_cAttributs)>0
        _nAttributs=_nAttributs+4096
    ENDIF

    = SetFileAttributes (lpFileName, _nAttributs)
RETURN


Commentaires
Aucun commentaire enregistré ...

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3