Re: Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- From: "Pegasus \(MVP\)" <I.can@xxxxxxxxxx>
- Date: Wed, 5 Mar 2008 14:37:47 +0100
"Stefan Kahlert" <skahlert@xxxxxxxxxxxxxx> wrote in message
news:efyzqKsfIHA.6092@xxxxxxxxxxxxxxxxxxxxxxx
Hallo zusammen,
hab ein Skript welches einen Ordner samt Unterordner auflistet.
Funktioniert soweit auch gut.
Das Problem ist nur, falls das Skript auf einen Ordner "trifft" auf den es
keinen Zugriff hat,
bricht bricht es ab. Soweit ach logisch :-)
Jetzt möchte ich gerne das das Skript einfach mit dem nächsten Ordner
fortfährt.
Bin mit der rekursion im Detail nicht vertraut.
Ich kann mit zwar den Fehler und das Verzeichnis anzeigen lassen an dem
der Zugriff scheiterte.
Der Hintergrund ist wir haben zig Tausende "Altdaten" in unzähligen
unterordnern.
Jetzt möchte ich natürlich nicht in jeden Ordner nachschauen ob
Berechtigungen bestehen.
Eine Liste mit Ordnern auf die der Zugriff verweigert wurde wäre
Hilfreich.
Besten Dank für Eure Tips
PS. Es tritt der Fehler 70 auf "Zuigriff verweigert"
Mfg
Stefan Kahlert
hier mal der Code
on error resume next
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\temp"
Set objFolder = objFSO.GetFolder(objStartFolder)
set logfile = objFSO.opentextfile("C:\logfile.txt", 2, true,0)
Wscript.Echo objFolder.Path
Set colFiles = objFolder.Files
For Each objFile in colFiles
logfile.writeline "Datei" &objFSO.GetAbsolutePathName(objfile)
Next
ShowSubfolders objFSO.GetFolder(objStartFolder)
if err.number <> 0 then MsgBox ("Fehler Nr " & CStr(Err.Number) & ", " &
Err.Description) & objFolder.Path
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Wscript.Echo Subfolder.Path
Set objFolder = objFSO.GetFolder(Subfolder.Path)
Set colFiles = objFolder.Files
For Each objFile in colFiles
logfile.writeline "Datei" &objFSO.GetAbsolutePathName(objfile)
Next
ShowSubFolders Subfolder
Next
End Sub
Falls Du bloss ein Verzeichnis aller Dateien erstellen willst, ist die
folgende Befehlszeile weitaus die einfachste Lösung, weil jemand
anders das Rad für dich schon erfunden hat:
dir /b /s c:\temp > c:\Logfile.txt
Der Befehl arbeitet rekursiv und wird auch mit gesperrten
Verzeichnissen fertig.
.
- Follow-Ups:
- Re: Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- From: Stefan Kahlert
- Re: Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- References:
- Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- From: Stefan Kahlert
- Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- Prev by Date: Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- Next by Date: Re: Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- Previous by thread: Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- Next by thread: Re: Ordner rekursive durchsuchen. Bei Zugriffsfehler Skript fortsezten, wie
- Index(es):
Relevant Pages
|