Rubrique précédente: FindFirst – Renvoyer le nom du premier fichier de la rechercheRubrique suivante: FindNext


FindFirstFile : Rechercher des fichiers dans un répertoire

Valide sur les plates-formes NetWare, Symbian OS, UNIX, Windows et Windows CE

La fonction FindFirstFile recherche des fichiers dans le répertoire indiqué.

Format de la fonction :

FindFirstFile(namespec as String, filename as String) as Integer
namespec

Identifie le chemin du répertoire ou du fichier par l'utilisation de caractères génériques. N'utilisez pas de chaîne littérale. Par exemple :

NOT :
Dim filename as string
Dim findHandle as integer
findHandle=FindFirstFile("c:\windows\*.dll",filename).

BUT :
Dim filename as string
Dim filehandle as integer
Dim path as string
Path="c:\windows\*.dll"
Filehandle=FindFirstFile(path,filename)

nom_fichier

Paramètre de sortie qui contient le nom du fichier trouvé.

En cas de réussite, la fonction renvoie un descripteur de fichier que vous pouvez utiliser comme entrée pour FindNextFile et FindClose ; sinon, la fonction renvoie 0. Si la fonction échoue, elle renvoie la valeur 0.

Exemple :

Cet exemple répertorie de façon récursive le contenu des répertoires passés en tant qu'arguments.

Function contents(root as string) As Boolean
	Dim fileName As String
	Dim iHandle As Integer
	Dim rootRoot As String
	
	rootRoot = Mid(root, 0, len(root)-1)
	iHandle = FindFirstFile(root, fileName)) Then
	If iHandle = 0 Then
		Print("Aucun fichier n'a été trouvé dans """ + racine + """")
	Else
		Repeat
			If Is_Dir(rootRoot + fileName) Then
				Print("""" + rootRoot + fileName + """ est un répertoire")
				if Not(fileName = ".") AND Not(fileName = "..") Then
					contents(rootRoot + fileName + "\*")
				End If
			Else
				Print("""" + rootRoot + fileName + """ est un fichier")
			End If
		Until Not(FindNextFile(iHandle, fileName))

		FindClose(iHandle)
	End If
	contents = True
End Function

Dim i As Integer
ClrScr()
if Argc() = 1 Then
	quitter
End If
For i=1 To Argc()-1
	Print(NEWLINE$ + "Liste récursive de """ + Argv(i) + """")
	Contents(Argv(i))
Next i

Appel : dmscript sample.dms c:\* -w_dms