Hi Leute.
Mein Programm überwacht alle veränderungen innerhalb eines Verzeichnisses.
Nun möchte ich, dass eine Funktion das als nächstes Verfügbare Verzeichnis zurückgibt, falls der Benutzer das Überwachte verzeichnis löscht.
Also z.b.:
Das Überwachungsverzeichnis ist C:\\Sonstiges\Bilder\ChuckNorris\
und der User löscht jetzt den Ordner ChuckNorris.
Dann soll eine Funktion den nächst verfügbaren pfad zurückgeben.
In diesem Fall C:\\Sonstiges\Bilder
Bei der Funktion, die Ich geschrieben habe tritt jedoch in der WHILE-Schleife immer eine ArgumentOutOfRange Exception auf.
Wäre super nett, wenn jemand eine andere Möglichkeit finden würde
Benutze Visual Basic 2008 Express
Hier ist meine Funktion:
Code:
Function getaviabledir(ByVal proofpath As String)
Dim aviabledir As String
Dim diraviable As Boolean
diraviable = False
aviabledir = proofpath
MsgBox(aviabledir)
If (IO.Directory.Exists(aviabledir) = False) And aviabledir.Length = 4 Then
aviabledir = FileIO.SpecialDirectories.ProgramFiles
aviabledir = aviabledir.Remove(3, aviabledir.Length - 3) + "\"
Else
While diraviable = False
If IO.Directory.Exists(aviabledir) = False Then
aviabledir = aviabledir.Remove(aviabledir.Length - 2, aviabledir.Length - 1)
aviabledir = aviabledir.Remove(aviabledir.LastIndexOf("\"), aviabledir.Length - 1) & "\"
Else
diraviable = True
End If
End While
End If
Return aviabledir
End Function