~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.
~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Fonction DeleteFile
Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" ( _ ByVal lpFileName As String) As Long
Versions : . Windows 95/98 : Oui . Windows NT : A partir de 3.1 . Windows 2000/XP : OuiDescription : Rien de bien compliqué ici. Cette fonction sert tout simplement à effacer un fichier.
lpFileName est le nom du fichier à effacer.
La fonction retourne Vrai si la suppression a eu lieu, sinon, False.
Equivalent de la commande "Kill" sous Visual Basic.
Exemple d'utilisation :
' Exemple proposé par : Christophe M (ch.m@free.fr)
'-----------------------------------------------------------
' Déclarations
'-----------------------------------------------------------
Option Explicit
' Récupérer le chemin du répertoire temporaire
Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" ( _
ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
' Créer un nom de fichier temporaire
Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" ( _
ByVal lpszPath As String, _
ByVal lpPrefixString As String, _
ByVal wUnique As Long, _
ByVal lpTempFileName As String) As Long
' Créer un fichier
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _
ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long
' Fermer un fichier
Public Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
' Supprimer un fichier
Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" ( _
ByVal lpFileName As String) As Long
'--------------------------------------
' Constantes et structure pour l'API CreateFile
'--------------------------------------
' Type des attributs de sécurité
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
' Valeur de retour si erreur
Public Const INVALID_HANDLE_VALUE = -1
' dwDesiredAccess
Public Const GENERIC_WRITE = &H40000000
Public Const GENERIC_READ = &H80000000
' dwShareMode
Public Const FILE_SHARE_READ = &H1
Public Const FILE_SHARE_WRITE = &H2
' dwCreationDisposition
Public Const CREATE_NEW = 1
Public Const CREATE_ALWAYS = 2
Public Const OPEN_EXISTING = 3
Public Const OPEN_ALWAYS = 4
Public Const TRUNCATE_EXISTING = 5
' dwFlagsAndAttributes
' attributs
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
' flags
Public Const FILE_FLAG_WRITE_THROUGH = &H80000000
Public Const FILE_FLAG_OVERLAPPED = &H40000000
Public Const FILE_FLAG_NO_BUFFERING = &H20000000
Public Const FILE_FLAG_RANDOM_ACCESS = &H10000000
Public Const FILE_FLAG_SEQUENTIAL_SCAN = &H8000000
Public Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000
Public Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000
Public Const FILE_FLAG_POSIX_SEMANTICS = &H1000000
'-----------------------------------------------------------
' creerFicTemp
'-----------------------------------------------------------
Public Function creerFicTemp(ByRef pS_messErr As String, _
ByRef pS_pathFicTemp As String, _
ByRef pI_handleFicCreer As Long, _
Optional pB_fermerFic As Boolean = True) As Boolean
' Crée un fichier temporaire (unique) dans le répertoire temp du système
' pS_pathFicTemp : nom du fichier .tmp créé (affecté par référence)
' pI_handleFicCreer : handle du fichier .tmp créé (affecté par référence)
' pB_fermerFic : à true = on ferme le fichier
On Error GoTo errVB
Static sI_bufferLength As Long
Static sS_prefix As String * 3 ' préfixe du fichier temp
Dim lS_repTemp As String ' repertoire temp
Dim lS_nomFicTemp As String ' fichier temp
Dim lO_securAttr As SECURITY_ATTRIBUTES
Dim lI_handleTemp As Long ' handle fic temporaire
Dim lI_handleFic As Long ' handle fic créé
' initialisation de la structure SECURITY_ATTRIBUTES
lO_securAttr.nLength = Len(lO_securAttr)
lO_securAttr.bInheritHandle = True
lO_securAttr.lpSecurityDescriptor = 0
' initialisation des variables
sI_bufferLength = 50
sS_prefix = "CHM" ' mon trigramme
lS_repTemp = Space$(50)
lS_nomFicTemp = Space$(100)
creerFicTemp = False ' la fonction est en erreur par défaut
' récupération du répertoire temp
If GetTempPath(sI_bufferLength, lS_repTemp) = 0 Then
Form1.Print "Impossible de trouver le chemin du répertoire temporaire !"
Exit Function
End If
' génération d'un nom de fichier (unique dans le répertoire temporaire)
If GetTempFileName(Mid$(lS_repTemp, 1, InStrRev(lS_repTemp, "\")), _
sS_prefix, 0, lS_nomFicTemp) = 0 Then
pS_messErr = "Impossible de créer un fichier temporaire !"
Exit Function
End If
' "nettoyage" du nom du fichier
lS_nomFicTemp = Mid$(lS_nomFicTemp, 1, InStrRev(lS_nomFicTemp, ".tmp", , vbTextCompare) + 3)
pS_pathFicTemp = lS_nomFicTemp
' création du fichier dans le répertoire temporaire
lI_handleFic = CreateFile(lS_nomFicTemp, _
0, _
0, _
lO_securAttr, _
CREATE_ALWAYS, _
FILE_ATTRIBUTE_NORMAL, _
lI_handleTemp)
If lI_handleFic = INVALID_HANDLE_VALUE Then
pS_messErr = "Impossible de créer le fichier temporaire !"
Exit Function
End If
pI_handleFicCreer = lI_handleFic
If pB_fermerFic Then
' fermeture du fichier
If CloseHandle(lI_handleFic) <> 1 Then
pS_messErr = "Impossible de fermer le fichier ayant le handle : " & lI_handleFic
Exit Function
End If
End If
' tout est Ok
creerFicTemp = True
Exit Function
errVB:
pS_messErr = "Erreur inattendu : " & Err.Description
End Function
Retour à la liste des API |