OVH Cloud OVH Cloud

Distinction fichier/dossier

2 réponses
Avatar
Eric
Comment faire le plus simplement possible la distinction entre un
fichier et un dossier en utilisant les API?

J'ai vu de nombreuses fonctions (ex: PathIsDirectory...) mais il faut
faire de mutiples combinaisons pour arriver à ses fins sans être
vraiment sûr de ne pas avoir oublier des cas.

Merci

2 réponses

Avatar
Clive Lumb
Eric wrote:
Comment faire le plus simplement possible la distinction entre un
fichier et un dossier en utilisant les API?

J'ai vu de nombreuses fonctions (ex: PathIsDirectory...) mais il faut
faire de mutiples combinaisons pour arriver à ses fins sans être
vraiment sûr de ne pas avoir oublier des cas.

Merci


Regardes dans l'API Guide - sous GetFileAttributes
Notamment les lignes suivantes
Private Declare Function GetFileAttributes Lib "kernel32" Alias
"GetFileAttributesA" (ByVal lpFileName As String) As Long

Const FILE_ATTRIBUTE_DIRECTORY = &H10

If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY then
Avatar
Jacques93
Bonjour Eric,
Eric a écrit :
Comment faire le plus simplement possible la distinction entre un
fichier et un dossier en utilisant les API?

J'ai vu de nombreuses fonctions (ex: PathIsDirectory...) mais il faut
faire de mutiples combinaisons pour arriver à ses fins sans être
vraiment sûr de ne pas avoir oublier des cas.



Pourquoi utiliser les API's ?

Private Function IsDirectory(fName As String) As Boolean
Dim Attr As Long

On Error Resume Next
Err.Clear
Attr = GetAttr(fName)
If Err.Number <> 0 Then
MsgBox Err.Description & " " & Err.Number
Exit Function
End If
On Error GoTo 0
IsDirectory = (Attr And vbDirectory) = vbDirectory
End Function



--
Cordialement,

Jacques.