Domino 9 und frühere Versionen > Entwicklung
Prüfen, ob ein Pfad vorhanden ist
Thomas Schulte:
--- Zitat von: Semeaphoros am 13.04.05 - 16:03:39 ---Aber sicher doch, schau Dir mal die Option Attr-Mask an und verwende die Maske mit dem Wert 16
--- Ende Zitat ---
Das geht aber unter Umständen in die Hose. Z.B. bei Dateien ohne Endung. Die erkennt er nämlich auch als Dir.
Thomas Schulte:
Die Variante die ich mal entwickelt habe und die wirklich (unter Windows) hundertprozentig funktioniert versucht das Dir zu öffne und erkennt dadurch den unterschied zwischen Dir und File ohne Extention.
Declarations:
Dim directorylist List As String
Dim startentryposition As Integer
Sub finddirectories(basedir As String)
' finds all directory entries and subentries in a given path
Dim filename As String
Dim fileattribute As Integer
Dim isdir As Integer
Dim fromcount As Integer
Dim setfirstentryposition As Integer
Dim setlastentryposition As Integer
Dim dircount As Integer
Dim i As Integer
On Error Resume Next
' save the entryposition due to the recursion
setfirstentryposition = startentryposition
' get the file names
fileName = Dir$(basedir & "\*.*",16)
Do While fileName$ <> ""
fileattribute = Getfileattr (basedir + "\" + fileName )
If fileattribute = 16 Then
' check if this is really a directory
isdir = checkdir(basedir + "\" + Filename)
If isdir = True Then
If filename <> "." And filename <> ".." Then
directorylist(Cstr(startentryposition)) = basedir & "\" & Filename
startentryposition = startentryposition + 1
End If
End If
End If
filename = Dir$()
Loop
If setfirstentryposition < startentryposition Then
setlastentryposition = startentryposition
For i = setfirstentryposition To setlastentryposition -1
Call finddirectories(directorylist(Cstr(i)))
Next
End If
End Sub
Function checkDir( path As String ) As Integer
On Error Resume Next
CheckDir = False
Chdrive Left( path, 1 )
Chdir path
If Curdir = path Then
CheckDir = True
End If
End Function
rar:
Ich glaube in meinem Fall reicht das Dir.
Aber trotzdem vielen Dank für die Funktion, Thomas.
Kann ich sicher noch gebrauchen :)
Semeaphoros:
--- Zitat von: Thomas Schulte am 13.04.05 - 16:42:14 ---Das geht aber unter Umständen in die Hose. Z.B. bei Dateien ohne Endung. Die erkennt er nämlich auch als Dir.
--- Ende Zitat ---
Falsch, Thomas, die Attributmaske sorgt dafür, dass das eben nicht schief läuft. Braucht keine Verrenkungen über einen Versuch, die Datei zu öffnen. Das funktioniert einwandfrei. Einzig das Root-Verzeichnis lässt sich so nicht findnen (aber da gibts eigentlich auch kein Bedürfnis für)
Semeaphoros:
Sorry, Thomas, Du hast Recht, ich hab das verwechselt mit dem zugrundeliegenden API-Call, dort bekommt man neben dem Directory-Namen auch noch die Attribute des Eintrages zurück und kann dann natürlich direkt damit überprüfen, um was für eine Rückgabe es sich handelt. Basic/LotusScript unterdrückt diesen Rückgabewert leider, da nur ein einziger Rückgabewert zurückgeliefert wird.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln