Visual Basic - Gesamte Anzahl an Dateien im einem Laufwerk ermitteln
Hallo Leute,
ich benötige für mein projekt die Anzahl von Dateien in einem Laufwerk.
Ich habe mir selbst schon eine rekursive Prozedur gebastelt, die alle Verzeichnisse, angefangen vom Laufwerksbuchstaben, durchgeht und
die dort befindlichen dateien zählt. Das alles dauert relative lang.
Wisst ihr ob man das irgendwie einfacher gestalten kann oder ob windows das in einer datei speichert, aus der man dann auslesen könnte?
Vielen Dank im Voraus
ich benötige für mein projekt die Anzahl von Dateien in einem Laufwerk.
Ich habe mir selbst schon eine rekursive Prozedur gebastelt, die alle Verzeichnisse, angefangen vom Laufwerksbuchstaben, durchgeht und
die dort befindlichen dateien zählt. Das alles dauert relative lang.
Wisst ihr ob man das irgendwie einfacher gestalten kann oder ob windows das in einer datei speichert, aus der man dann auslesen könnte?
Vielen Dank im Voraus
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Public Function FindFiles(ByVal Path As DirectoryInfo) As Integer
Dim iAnzahl As Integer
If Not Path.Exists Then
MessageBox.Show("Ungültiger Pfad")
Return 0
Else
'Dateien im Ordner
Dim Files() As FileInfo = Path.GetFiles()
'Ordner im Ordner:
Dim Dirs() As DirectoryInfo = Path.GetDirectories()
'Dateien zählen
iAnzahl += Files.Length
'Rekursion
For i As Integer = 0 To Dirs.Length - 1
iAnzahl += FindFiles(Dirs(i))
Next
Return iAnzahl
End If
End Function
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »jegi0605« (12. August 2011, 18:18)
Habe hier was gefunden was gehen sollte und auch sehr schnell bei sehr großen Platten ;-)
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Dim oFSO As New FileSystemObject
Dim oFolder As Folder
For Each oFolder In oFSO.GetFolder("C:").SubFolders
List1.AddItem oFolder
Next
' Ausgangsverzeichnis
Set oFolder = oFSO.GetFolder("c:")
' Anzahl Dateien im Stammverzeichnis von C:
Dim nCount As Long
nCount = oFolder.Files.Count
MsgBox "Im Verzeichnis C:\ befinden sich " & CStr(nCount) & " Datei(en)."
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »jegi0605« (12. August 2011, 22:13)
erstmal danke für deine arbeit
leider zeigt mir der code, dass ich im meinem c verzeichnis nur 4 dateien, was falsch ist.
habe jetzt mal versucht das ganze mit dem belegtem speicherplatz zu vergleichen, aber progressbar.value akzeptiert nur integer zahlen
da aber die belegte größe den wertebereich einer int-variable überschreitet kriege ich immer eine overflow exception.
wenn ich das ganze dann in kb oder so umrechne, um es zu verkürzen, dauert es natürlich dementsprechend länger.
habt ihr noch ieinen guten einfall?
leider zeigt mir der code, dass ich im meinem c verzeichnis nur 4 dateien, was falsch ist.
habe jetzt mal versucht das ganze mit dem belegtem speicherplatz zu vergleichen, aber progressbar.value akzeptiert nur integer zahlen
da aber die belegte größe den wertebereich einer int-variable überschreitet kriege ich immer eine overflow exception.
wenn ich das ganze dann in kb oder so umrechne, um es zu verkürzen, dauert es natürlich dementsprechend länger.
habt ihr noch ieinen guten einfall?
Visual Basic - Gesamte Anzahl an Dateien im einem Laufwerk ermitteln
Hallo Piper,
vermutlich wird es dir nicht besonders helfen aber ich habe mal ein Beispiel zum Ermitteln der Dateianzahl mit VBA erstellt. Die Befehle sollten auch in VB verfügbar sein.
Solltest du Fragen oder Probleme bei der Umsetzung in VB haben, dann einfach kurz melden.
Grüße
P.s Die Pfadangabe erfolgt immer in folgender Form: C:\*.*
vermutlich wird es dir nicht besonders helfen aber ich habe mal ein Beispiel zum Ermitteln der Dateianzahl mit VBA erstellt. Die Befehle sollten auch in VB verfügbar sein.
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 |
Function FILE_COUNT(ByVal STR_PATH As String) As Long Dim STR_DATEI As String 'Zur Speicherung des Dateinamens STR_DATEI = Dir(STR_PATH) Do Until STR_DATEI = "" FILE_COUNT = FILE_COUNT + 1 STR_DATEI = Dir Loop End Function |
Solltest du Fragen oder Probleme bei der Umsetzung in VB haben, dann einfach kurz melden.
Grüße
P.s Die Pfadangabe erfolgt immer in folgender Form: C:\*.*
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »OfficeProjekt« (26. Oktober 2011, 17:44)
Ähnliche Themen
-
Sonstige Programmiersprachen »-
Visual Basic Dateien ausführbar machen HILFE
(4. November 2009, 16:43)
-
PHP »-
windows programiersprache
(8. April 2003, 19:55)
-
Archiv: Software »-
Komfortableres Programm für Programmierung???
(15. Februar 2003, 11:36)


