Why is the first 4 Characters of the Filename Getting Truncated
I have the following code, but when it gets to Line 17 of the code, it's truncating the beginning of the FileName, which in turn makes the Do While FindNextFile fail and then the cursor moves to "FindClose nFind".
Function FindFolders(strStartDir As String, strResults() As String) As Long 'NOTE: this is non recursive, so the results will only show for the given folder On Error GoTo ErrHandler Dim wfd As WIN32_FIND_DATA Dim nFind As LongPtr Dim strDirectoryName As String ReDim strResults(0) '0 will not be used 'if there is already a wildcard then leave the StartDir be (example for user passed is C:\blah\T* = all folders that start with a T If InStr(1, strStartDir, "*") < 1 Then If Right(strStartDir, 1) <> "\" Then strStartDir = strStartDir & "\" strStartDir = strStartDir & "*" End If nFind = FindFirstFile(strStartDir, wfd) 'api call If (wfd.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) > 0 Then 'if this is a directory strDirectoryName = Left(wfd.cFileName, InStr(1, wfd.cFileName, Chr(0)) - 1) If strDirectoryName <> "." And strDirectoryName <> ".." Then ReDim Preserve strResults(UBound(strResults) + 1) strResults(UBound(strResults)) = strDirectoryName End If End If Do While FindNextFile(nFind, wfd) If (wfd.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) > 0 Then 'if this is a directory strDirectoryName = Left(wfd.cFileName, InStr(1, wfd.cFileName, Chr(0)) - 1) If strDirectoryName <> "." And strDirectoryName <> ".." Then ReDim Preserve strResults(UBound(strResults) + 1) strResults(UBound(strResults)) = strDirectoryName End If End If LoopErrHandler: FindClose nFind FindFolders = ErrorHandler(err, "FindFolders")End Function
Put a breakpoint on line 17 by clicking in the left-hand margin of that line. Run the code and when it stops there, hover over wfd.cFileName. Is there what looks like a blank in position 4?