A thought
Private Function SafePath(path As String) As String
Static InvalidPathChars() As Char = IO.Path.GetInvalidPathChars
Dim rv As String = path
Try
IO.Path.GetFullPath(rv)
Catch ex As Exception
Dim p() As String = rv.Split(InvalidPathChars)
rv = String.Join("_"c, p)
End Try
Return rv
End Function