Um in VB .NET ungültige Zeichen aus einem Dateinamen bzw. einem Verzeichnisnamen zu entfernen, kann man sich via System.IO.Path.GetInvalidFileNameChars bzw. System.IO.Path.GetInvalidPathChars die betriebssystemtypischen, ungültigen Zeichen auflisten lassen.
Die folgenden Funktionen entfernen diese Zeichen aus der übergebenen Zeichenkette und geben einen gültigen Datei- bzw. Verzeichnisnamen zurück.
Imports System.Text.RegularExpressions
Public Class FileTools
Public Shared Function CleanFilename(ByVal aFilename As String) As String
Dim strClean As String = aFilename
For Each c As Char In System.IO.Path.GetInvalidFileNameChars
strClean = strClean.Replace(c, String.Empty)
Next
Return strClean
End Function
Public Shared Function CleanPath(ByVal aFilename As String) As String
Dim strClean As String = aFilename
For Each c As Char In System.IO.Path.GetInvalidPathChars
strClean = strClean.Replace(c, String.Empty)
Next
Return strClean
End Function
End Class
Und da das auch noch dazu passt, hier eine Funktion um eine menschenlesbare Dateigröße auszugeben:
Public Shared Function CreateNiceFileSize(ByVal aBytes As Long) As String
Dim arrPosForm() As String = {"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"}
For i As Integer = arrPosForm.Length - 1 To 0 Step -1
If aBytes > 1024 ^ i Then
aBytes /= 1024 ^ i
Return aBytes.ToString("0.00") & " " & arrPosForm(i)
End If
Next i
' Nur als Byte-String zurückgeben...
Return aBytes.ToString("0.00") & " B"
End Function