codice:
' GetFileName;
' Return the name of a file;
' I : strFile = full path of a file;
' O : string = file name only;
' Examples : GetFileName("c:\path\path2\file.ext") return "file.ext";
' GetFileName("c:\path\path2") return "path2";
' GetFileName("c:\path\path2\") return "";
' GetFileName("file.ext") return "file.ext";
Public Function GetFileName(strFile As String) As String
' Temp splitting vector;
Dim strTemp() As String
' Split the filename into a vector, using as delimiter "\";
strTemp = Split(strFile, "\")
' If the resulting vector have more than 1 element;
If LBound(strTemp) <> UBound(strTemp) Then
' Return the last element (the file name);
GetFileName = strTemp(UBound(strTemp))
Else
' Return the string passed as file name (we suppose that someone pass us the filename without path);
GetFileName = strFile
End If
' Kill the vector;
Erase strTemp
End Function
' GetFileExt;
' Return the extension of a file;
' I : strFile = full path of name-only of the file;
' O : string = extension or "" if file name have no extension;
' Examples : GetFileExt("c:\path\path2\file.ext") return "ext";
' GetFileExt("file.ext") return "ext";
' GetFileExt("c:\path\path2\file") return "";
' GetFileExt(".ext") return "ext";
Public Function GetFileExt(strFile As String) As String
' Temp splitting vector;
Dim strTemp() As String
' Split the filename into a vector, using as delimiter "\";
strTemp = Split(strFile, ".")
' If the resulting vector have more than 1 element;
If LBound(strTemp) <> UBound(strTemp) Then
' Return the last element (the extension);
GetFileExt = strTemp(UBound(strTemp))
Else
' No extension : return an empty string;
GetFileExt = ""
End If
' Kill the vector;
Erase strTemp
End Function
' GetFilePath;
' Return the path of a specified file;
' I : strFile = string : filename with full path;
' blnIncludeEndingSlash = boolean : if true, the returned path have an ending "\";
' default is false;
' O : string : full path of the file;
' Examples : GetFilePath("c:\path\path2\file.ext") return "c:\path\path2";
' GetFilePath("c:\path\path2\file.ext", True) return "c:\path\path2\";
' Tip : you can get the previous directory with this function;
' GetFilePath("c:\path1\path2") return "c:\path1";
' Note that GetFilePath("c:\path1\path2\") will return
' "c:\path1\path2"!;
Public Function GetFilePath(strFile As String, Optional blnIncludeEndingSlash As Boolean = False) As String
' Temp splitting vector;
Dim strTemp() As String
' This string will be append at the begin of the path at the end of the function;
Dim strNetPath As String
' This is a simple counter;
Dim i As Integer
' If the first 2 char of the given filename are "\\", then we
' got a net path;
If Left(strFile, 2) = "\\" Then
' "\\" will be append at the begin of the path;
strNetPath = "\\"
Else
' Append nothing at the begin of the path;
strNetPath = ""
End If
' Split the filename using "\" as delimiter;
strTemp = Split(strFile, "\")
' Reset the return path;
GetFilePath = ""
' Pass all the elements of the vector (but not the last);
For i = LBound(strTemp) To UBound(strTemp) - 1
' If the resulting path is still empty do not append "\";
If GetFilePath <> "" Then GetFilePath = GetFilePath & "\"
' Append the current element of the splitting vector on the resulting path;
GetFilePath = GetFilePath & strTemp(i)
Next i
' Must we append the final "\"?
If blnIncludeEndingSlash = True Then
' yes!
GetFilePath = GetFilePath & "\"
End If
' Add the eventual "\\" at the begin of the path;
GetFilePath = strNetPath & GetFilePath
' Erase the splitting vector from the memory;
Erase strTemp
End Function