Jag behöver räkna ett antal filer samt hämta deras namn. har inget anna förslag, men den är väldig klumpig det kan jag hålla med om.. KAn du inte använda Dir funktionen?Räkna filer och namn
Jag har gjort en subb men den känns väldigt klumpig.
<code>
Dim fso As New FileSystemObject, filNamn As String
Dim f As Folder, sf As Folder, Path As String, Kopiera
Dim oFile As File, rakna As Long
filNamn = frMultiLanguage.StatusBar1.Panels(4).text
rakna = 0
Path = frMultiLanguage.StatusBar1.Panels(1).text & "\Lang"
Set f = fso.GetFolder(Path)
If f.Files.Count > 0 Then
For Each oFile In f.Files
If Mid(oFile.Name, 4) = filNamn Then
rakna = rakna + 1
End If
Next oFile
' MsgBox rakna 'detta stämmer nu
End If
If f.Files.Count > 0 Then
For Each oFile In f.Files
If Mid(oFile.Name, 4) = filNamn Then
MsgBox oFile.Name'DETTA skall bli annorlunda
End If
Next oFile
Else
MsgBox "Den finns inga filer"
End If
</code>
Jag måste veta om antalet filer innan nästa operation. Något bättre förslag?Sv: Räkna filer och namn
Sv: Räkna filer och namn
<code>
Private Sub TestListFiles()
Dim File
Dim Result
Result = ListFiles(frMultiLanguage.StatusBar1.Panels(1).text & "\Lang\*" & frMultiLanguage.StatusBar1.Panels(4).text)
Debug.Print "Antal: " & UBound(Result)
For Each File In Result
Debug.Print File
Next
End Sub
Public Function ListFiles(Path As String)
Dim Size
Dim Count
Dim Result
Dim FileName As String
Size = 10
ReDim Result(1 To Size)
FileName = Dir$(Path, vbHidden Or vbSystem Or vbReadOnly)
Do While Len(FileName)
Count = Count + 1
If Count > Size Then
Size = Size * Size
ReDim Preserve Result(1 To Size)
End If
Result(Count) = FileName
FileName = Dir$
Loop
If Count Then
ReDim Preserve Result(1 To Count)
ListFiles = Result
End If
End Function
</code>