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

Quelques fonctions api File   



L'auteur

Gregory Adam
Belgique Belgique
Membre Actif (personne physique)
# 0000001121
enregistré le 04/06/2006

Fiche personnelle


Note des membres
pas de note

Contributions > 05 - API et appels systèmes

Quelques fonctions api File
# 0000000335
ajouté le 22/06/2006 08:53:24 et modifié le 22/06/2006
consulté 6026 fois
Niveau débutant

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

Description

Quelques fonctions api fichier

- FileExists(FileName): methode plus sure que File(), retourne TRUE ou FALSE

- FileReadOnly(FileName) : TRUE si le fichier est en ReadOnly

- FileResetReadOnly(FileName): mettre le fichier en ReadWrite,  retourne TRUE ou FALSE

- FileSetReadOnly(FileName): mettre le fichier en ReadOnly,  retourne TRUE ou FALSE

- File_Copy(src, dest): copier un fichier,  retourne TRUE ou FALSE

- File_Move(FileNameFrom, FileNameTo): deplacer un fichier,  retourne TRUE ou FALSE

- File_Delete(FileName) : retourne TRUE ou FALSE

Code source :

#include  "FoxPro.h"
#define  TRUE  .T.
#define  FALSE  .F.

#define  FILE_ATTRIBUTE_READONLY        0x00000001
#define  FILE_ATTRIBUTE_HIDDEN        0x00000002
#define  FILE_ATTRIBUTE_SYSTEM        0x00000004
#define  FILE_ATTRIBUTE_DIRECTORY      0x00000010
#define  FILE_ATTRIBUTE_ARCHIVE        0x00000020
#define  FILE_ATTRIBUTE_ENCRYPTED      0x00000040
#define  FILE_ATTRIBUTE_NORMAL        0x00000080
#define  FILE_ATTRIBUTE_TEMPORARY      0x00000100
#define  FILE_ATTRIBUTE_SPARSE_FILE      0x00000200
#define  FILE_ATTRIBUTE_REPARSE_POINT    0x00000400
#define  FILE_ATTRIBUTE_COMPRESSED      0x00000800
#define  FILE_ATTRIBUTE_OFFLINE        0x00001000
#define  FILE_ATTRIBUTE_NOT_CONTENT_INDEXED  0x00002000


#define INVALID_HANDLE_VALUE    (-1)
#define INVALID_FILE_SIZE      (-1)
#define INVALID_SET_FILE_POINTER  (-1)
#define INVALID_FILE_ATTRIBUTES    (-1)

&& do this once
declare Integer GetFileAttributes in win32api string @
declare Integer SetFileAttributes in win32api string @, Integer

declare Integer MoveFile in win32api string @ src, String @ dest
declare Integer CopyFile in win32api string @, string @, Integer

declare Integer DeleteFile in win32api string @

&& end once

*--------------------------------------------------------------------------
Function  FileExists(FileName)

  return  inlist(vartype(m.FileName), T_CHARACTER) ;
    and  (GetFileAttributes(@m.FileName) <> INVALID_FILE_ATTRIBUTES)

endfunc
*--------------------------------------------------------------------------
function FileReadOnly(FileName)

  return !empty(bitand(GetFileAttributes(@m.FileName), FILE_ATTRIBUTE_READONLY))
endfunc
*--------------------------------------------------------------------------
function FileResetReadOnly(FileName)
  local fa
  fa = GetFileAttributes(@m.FileName)

  if( m.fa == INVALID_FILE_ATTRIBUTES )
    return FALSE
  endif

  ifempty(bitand(m.fa, FILE_ATTRIBUTE_READONLY)) ) && file was not readonly
    return FALSE
  endif

  fa = bitand(m.fa, bitnot(FILE_ATTRIBUTE_READONLY))

  ifempty(SetFileAttributes(@m.FileName, m.fa)) )
    return FALSE
  endif

endfunc
*--------------------------------------------------------------------------
function FileSetReadOnly(FileName)
  local fa
  fa = GetFileAttributes(@m.FileName)

  if( m.fa == INVALID_FILE_ATTRIBUTES )
    return FALSE
  endif

  fa = bitor(m.fa, FILE_ATTRIBUTE_READONLY)

  ifempty(SetFileAttributes(@m.FileName, m.fa)) )
    return FALSE
  endif

endfunc
*--------------------------------------------------------------------------
function File_Copy(src, dest)

  return !empty(CopyFile(@m.src, @m.dest, 0))
endfunc
*---------------------------------------------------------------------------
function File_Move(FileNameFrom, FileNameTo)

  return !empty(MoveFile(@m.FileNameFrom, @m.FileNameTo))
endfunc
*---------------------------------------------------------------------------
function File_Delete(FileName)

  local Success
  Success = TRUE

  do case
  case inlist(vartype(m.FileName), T_CHARACTER) or empty(m.FileName)

  case !FileExists(m.FileName)

  case empty(DeleteFile(m.FileName) )
    Success = FALSE

  endcase

  return m.Success

endfunc
*---------------------------------------------------------------------------

Commentaires
Aucun commentaire enregistré ...

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