Inoltre cercando di capire quale fosse la differenza tra le funzioni:
codice:
My.Computer.FileSystem.GetFiles
,
codice:
System.IO.Directory.GetFiles
,
codice:
Dim info() As FileInfo = dir_info.GetFiles
e spulciando tra le classe del Framework mi pare di capire, forse era ovvio, fanno capo tutte alla stessa funzione....
codice:
Private Shared Function InternalGetFiles(ByVal path As String, ByVal searchPattern As String, ByVal searchOption As SearchOption) As String()
Return Directory.InternalGetFileDirectoryNames(path, path, searchPattern, True, False, searchOption)
End Function
di cui
codice:
Friend Shared Function InternalGetFileDirectoryNames(ByVal path As String, ByVal userPathOriginal As String, ByVal searchPattern As String, ByVal includeFiles As Boolean, ByVal includeDirs As Boolean, ByVal searchOption As SearchOption) As String()
Dim list As New List(Of String)(FileSystemEnumerableFactory.CreateFileNameIterator(path, userPathOriginal, searchPattern, includeFiles, includeDirs, searchOption))
Return list.ToArray
End Function
di cui
codice:
<SecuritySafeCritical> _
Friend Shared Function CreateFileNameIterator(ByVal path As String, ByVal originalUserPath As String, ByVal searchPattern As String, ByVal includeFiles As Boolean, ByVal includeDirs As Boolean, ByVal searchOption As SearchOption) As IEnumerable(Of String)
Return New FileSystemEnumerableIterator(Of String)(path, originalUserPath, searchPattern, searchOption, New StringResultHandler(includeFiles, includeDirs))
End Function
infine, utilizzanso le API
codice:
<DllImport("kernel32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
Friend Shared Function FindFirstFile(ByVal fileName As String, <[In], Out> ByVal data As WIN32_FIND_DATA) As SafeFindHandle
End Function
e
codice:
<DllImport("kernel32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
Friend Shared Function FindNextFile(ByVal hndFindFile As SafeFindHandle, <[In], Out, MarshalAs(UnmanagedType.LPStruct)> ByVal lpFindFileData As WIN32_FIND_DATA) As Boolean
End Function
Buona lettura