2017-02-22 8 views
0

Mein Hauptziel ist es zu überprüfen, ob ein Ordner in einer Zip-Datei existiert. Dafür versuche ich, durch die verschiedenen Dateien und Ordner zu gehen. Ich verwende den folgenden Code für das:Get Pfad eines Artikels in der Liste

strFile = "C:\Users\temp.zip" 
Set objApp = CreateObject("Shell.Application") 
Set objContents = objApp.NameSpace(strFile).Items() 

For Each objItem in objContents 
    WScript.Echo objItem.Name 
    If objItem.IsFolder Then 
     GetSubFolders(objItem) 
    End If 
Next 

Sub GetSubFolders(objSubItem) 
    Set objFolder = objSubItem.GetFolder 

    For Each objItem2 in objFolder.Items() 
     WScript.Echo objItem2.Name 
     If objItem2.IsFolder Then 
      GetSubFolders(objItem2) 
     End If 
    Next 
End Sub 

Das Problem ist, ich kann nicht scheinen, um herauszufinden, wie Sie überprüfen können, welche Ebene bin ich auf.

Ich dachte darüber nach:

levelDepth = Len(strFile) - Len(Replace(strFile, "\", "")) 

, die mir sagt, wie "tief" die Zip-Datei ist. Wenn ich den vollständigen Pfad von objItem und objItem2 bekommen könnte, dann könnte ich die gleiche Methode verwenden. Subtrahieren Sie die beiden voneinander und erhalten Sie, wie tief in der ZIP-Datei das aktuelle Verzeichnis oder die Datei ist.

Antwort

1

Die Eigenschaft Path sollte Ihnen den vollständigen Pfad eines Elements geben.

+1

Bitte erläutern Sie die Antwort – Blip

+1

Was gibt es zu "objItem.Path" zu erarbeiten? –

+0

Yup ... Ich habe vor 2-3 Stunden eine Antwort gefunden, aber ich gebe dir das, weil es dasselbe ist. Ich fühle mich ein bisschen dumm, weil ich es vermisse. Danke, dass du dir die Zeit genommen hast, es zu beantworten. –

Verwandte Themen