Application.FileSearch

Hallo.

Ich lasse über application.fileSearch alle Dateien eines ordners auslesen, um eine zip-Datei anzuwählen. Leider ändert mein pdf-Creator jedes Mal den Namen, so dass ich nur die Möglichkeit über die Dateiendung habe. Mein Problem ist nun, dass die Application.FileSearch immer nur 663 Dateien ausliest. Wenn ich mir aber direkt über den Arbeitsplatz die Anzahl der Dateien in dem Ordner anzeigen lasse, dann sind das jetzt schon über 1000 (es werden wahrscheinlich knapp 2000). Und - Überraschung - meine zip-Datei ist natürlich nicht dabei.

Meine Fragen:

  1. Gibt es bei der Application.FileSearch eine Begrenzung der einlesbaren Dateien?
  2. Welche Möglichkeit seht Ihr noch, um auf die zip-Datei zuzugreifen? Ein Auslesen der einzelnen Dateien dürfte ebenfalls scheitern, weil ich heirfür bisher ebenfalls die Application.FileSearch verwendet haben.

Vielen Dank schon mal.

Hallo kackei,

Ich lasse über application.fileSearch alle Dateien eines
ordners auslesen, um eine zip-Datei anzuwählen.

  1. Gibt es bei der Application.FileSearch eine Begrenzung der
    einlesbaren Dateien?

FileName

Set fs = Application.FileSearch
With fs
 .LookIn = "C:\My Documents"
 .FileName = "\*.zip"

Von einer Begrenzung auf ca. 660 Dateien ist mir nichts bekannt, auch in www.Xlam.ch fand ich dazu nichts.

Gruß
Reinhard

Hallo Reinhard.

Das ist natürlich eine sehr schöne Begrenzung - allerdings findet er die zip-Datei gar nicht (mehr). Wenn ich nach xls suchen lasse, funktioniert es wunderbar. Er findet inzwischen auch alle Dateien. Es scheint so, als ob er zip-Dateien nicht als Dateien als solches erkennt. Komsicherweise klappt die Suche, wenn ich auf meinem lokalen Laptop arbeite (WinXP Office 2003) udn auf unserem Server-PC (irgednwas Vistazeugsmäßiges aber Office 2003) da findet er seid kurzem keine zip-Dateien mehr. Heute morgen hat er es noch gemacht fällt mir dabei ein. Ich bin echt ratlos, weil der Code an sich ja richtig ist.

Kann ich noch weitere Grenzparameter eingeben, wie zum Beispiel, dass ich nach einem Archive suchen will? Wir nutzen WinRar - falls es hilft.

Grüße.

Hallo kackei,

Das ist natürlich eine sehr schöne Begrenzung - allerdings
findet er die zip-Datei gar nicht (mehr). Wenn ich nach xls
suchen lasse, funktioniert es wunderbar. Er findet inzwischen
auch alle Dateien. Es scheint so, als ob er zip-Dateien nicht
als Dateien als solches erkennt.

*schulterzuck*, für mich ist eine Zip eine Datei wie jede andere.
Windows, also Dos-Prompt mit Bildern :smile:), kennt zwar Dateiattribute wie z.B. Versteckt und System die ggfs. Ärger machen könnten, aber das sehe ich hier nicht gegeben.

Komsicherweise klappt die
Suche, wenn ich auf meinem lokalen Laptop arbeite (WinXP
Office 2003) udn auf unserem Server-PC (irgednwas
Vistazeugsmäßiges aber Office 2003) da findet er seid kurzem
keine zip-Dateien mehr. Heute morgen hat er es noch gemacht
fällt mir dabei ein. Ich bin echt ratlos, weil der Code an
sich ja richtig ist.

Vielleicht liegt es irgendwie an Vista. Ich bin mir sicher, wenn du deinen Code zeigst und ich teste ihn bei mir (WinXP) so wird er funktionieren wie bei dir auf dem LapTop.

Und warum irgednwas morgens geht und später nicht, naja, das hat irgendwie Gründe die ich von hier aus nicht nachstellen/prüfen kann.

Kann ich noch weitere Grenzparameter eingeben, wie zum
Beispiel, dass ich nach einem Archive suchen will? Wir nutzen
WinRar - falls es hilft.

Ich denke nicht, mit welchem Programm du später die Zips öffnen/extrahiern willst spielt doch keine Rolle beim Suchen der Zip auf der Festplatte.

Zeige mal den Code den du hast. Damit suche ich mal komplett bei mir in allen Ordnern von C nach Zips, paar habe ich da schon.
Mal schauen was geschieht.

Übrigens, investiere nicht allzuviel Energie in FileSearch, ab XL2007 gibt es das nicht mehr, das heißt dann Code umschreiben!

Gruß
Reinhard

Hallo Reinhard.

Zeige mal den Code den du hast. Damit suche ich mal komplett
bei mir in allen Ordnern von C nach Zips, paar habe ich da
schon.
Mal schauen was geschieht.

With Application.FileSearch
.NewSearch
.LookIn = "Z:\XX
.SearchSubFolders = False
.Filename = „.zip“
.FileType = msoFileTypeAllFiles
.Execute
For i = 1 To .FoundFiles.Count
zipdatei = .FoundFiles(i)
Next i
End With

Den pfad der dann in zipdatei steht brauche ich später, um die datei zu verschieben. Kann testweise sicher auch ersetzt werden.

Übrigens, investiere nicht allzuviel Energie in FileSearch, ab
XL2007 gibt es das nicht mehr, das heißt dann Code
umschreiben!

Hab ich auch schon gelesen - aber zum Glück sind wir da etwas ängstlich und wechsel nicht zur 2007er Version - eben weil wir keine Lust/Zeit haben, die ganzen Codes zu ändern :wink:

Ich habe inzwischen den Code etwas (kompliziert) geändert. Die Suchaktion kommt ja nur dadurch zustande, weil sich der Dateiname ständig ändert. Inzwischen habe ich den Namen so verkürzt, dass ich direkt zugreifen kann - muss ich zwar drum herum eingies hin und her benennen, aber so klappt es wenigstens automaitsch im Hintergrund.

Grüße und viel Erfolg beim Probieren, Aiko.

With Application.FileSearch
.NewSearch
.LookIn = "Z:\XX
.SearchSubFolders = False
.Filename = „.zip“
.FileType = msoFileTypeAllFiles
.Execute
For i = 1 To .FoundFiles.Count
zipdatei = .FoundFiles(i)
Next i
End With

Hallo Kackei,

was soll das denn:

.Filename = „.zip“

es muß heißen

.Filename = " *.zip"

Gruß
Reinhard

Hallo Reinhard.

es muß heißen

.Filename = " *.zip"

Habe beides probiert. Bei EXCEL-Dateien funktioniert es nämlich auch mit
.Filename=".xls" und mit
.Filename="*.xls"

Den Code habe ich aus der letzten Version herauskopiert - da stand dann die „zweite“ Version einfach noch drin. Ich habe das ohne Stern allerdings dann auch noch in einer anderen Beschreibung im Netz gefunden. Bei mir funktionierte jedenfalls beides nicht.

Grüße.

Hallo Kackei,

es muß heißen
.Filename = " *.zip"

Habe beides probiert. Bei EXCEL-Dateien funktioniert es
nämlich auch mit
.Filename=".xls" und mit
.Filename="*.xls"

okay, aus mir unklaren Gründen hast du Recht, ich würde dir trotzdem empfehlen immer das * zu benutzen.
Ich habe jetzt folgenden Code getestet (XL2000,WinXP). Wie erwartet werden brav alle Zip-dateien aufgelistet.
Dabei ist es wirklich egal ob ich
.Filename = „*.zip“
oder
.Filename = „.zip“
benutze.

Sub tt()
Dim i, Zei
With Application.FileSearch
 .NewSearch
 .LookIn = "c:\"
 .SearchSubFolders = True
 .Filename = "\*.zip"
 .FileType = msoFileTypeAllFiles
 .Execute
 For i = 1 To .FoundFiles.Count
 Zei = Zei + 1
 Cells(Zei, 1) = .FoundFiles(i)
 Next i
End With
End Sub

Den Code habe ich aus der letzten Version herauskopiert - da
stand dann die „zweite“ Version einfach noch drin.

Herauskopiert? kannst du mir dann erklären wo die abschließenden Gänsefüßchen sind:
.LookIn = "Z:\XX
?

Das kann m.E. nur geschehen wenn du grad diese eine Zeile schreibst und dann den Code kopierst.
Verläßt du die Zeile fügt der Editor die Gänsefüßchen automatisch an.
Also, wo sind sie hin? :smile:

Und probier sowieso mal
.LookIn = „Z:\XX“

Gruß
Reinhard