VisualBasic Ordnerinhalt vergleichen

Antonio778877

Cadet 1st Year
Registriert
März 2016
Beiträge
13
Hallo zusammen,

ich versuche gerade ein VB Script zu schreiben das mir zwei Ordner und deren Unterordner vergleichen soll.
Hier ist mein Code:

Code:
Pfad1 = InputBox("Geben Sie den ersten Pfad ein","Pfad","")
Pfad2 = InputBox("Geben Sie den zweiten Pfad ein","Pfad","")

if Pfad1 = Pfad2 then
msgbox "Ordner sind gleich!"
else
msgbox "Ordner sind nicht gleich!"
end if

Ich weiss dass dieser aktuelle Code den Pfad vergleicht und nicht die Ordner. Ich habe aber keinen Plan wie ich das machen soll. Kann mir jemand weiterhelfen?
 
Versuch' doch mal den Ordnerinhalt in ein Array zu schreiben um dann in einer Schleife, jedes Element des einen Arrays mit dem Inhalt des anderen zu vergleichen.
So kannst du natürlich nur die Dateinamen vergleichen, für den Fall dass es die inhaltlich gleichen Dateien, mit unterschiedlichen Namen gibt, müsstest du dir einen anderen Weg ausdenken ;-)
 
Hi meph!sto

Danke für deine Antwort. Ich will eben nicht die Dateinamen vergleichen. Mit Ordner vergleichen mein ich dass dieses Script zwei Ordner testet, ob die gleich gross sind. Es ist tatsächlich der Fall, dass es die inhaltlich gleichen Dateien, mit unterschiedlichem Namen gibt.
 
Mit dem Folder Object kannst du z.B. die Größe vergleichen.

Wenn das nicht reicht, sei Folder dein Folder Object mit ungefähr "Set Folder = fso.GetFolder( Pfad )", kannst du mit "Folder.Files" eine Collection der Dateien bekommen und die einzeln überprüfen. Mit "Folder.Subfolders" bekommst du eine Collection der Unterverzeichnisse. Kannst du dann auch einzeln vergleichen oder du machst den Spass rekursiv.
 
Ungefragter Rat: Du wirst so nicht weiter kommen. Du hast kein spezielles
Problem, sondern ein Problem mit Programmieren. Du müsstest erst mal die absoluten Grundlagen lernen.

Ich würde dir zwei Dinge raten:

1. Lass VBA sein. Du machst es dir damit ungeheuer schwer. Lad dir Visual Studio Community runter und versuchs mit VB.net oder besser noch C#. Da bekommst du wenigstens Hinweise vom IDE wenn du was falsch machst. Zudem gibt siehst du was für Funktionen und Eigenschaften dir die verschiedenen Objekte bieten. Es können/wollen dir dann auch mehr Leute helfen und im Netz gibts mehr Quellen.

2. Bau dir einen Ordner mit einem Unterordner und zwei Dateien. Eine Datei im ersten Ordner und eine im Unterordner. Dann schreib was, was diese Ordner/Dateien alle "anfasst". Sowas wie den vollen Pfad ausgeben, oder Alter, etc. Das alles ohne dass du die Sachen hard-codest, also dass es theoretisch für irgendwelche Ordner klappen würde.
Das ist recht einfach, aber wenn es steht bist du fast fertig.
 
@Brotkrumen

Ich habe kein grosses Problem mit Programmieren! Ich habe bereits das Modul für VB Scripting hinter mir und erfolgreich abgeschlossen! Ich kenne die Grundlagen, aber was ich einfach nicht verstehe ist einfach wie man die Hashwerte von zwei Ordnern vergleichen kann. Das haben wir nicht durchgenommen!
 
K. Na dann, hier ist eine Klasse mit der du MD5 Hash aus Dateien bekommst:link.
Achtung: Wenn die Dateien groß sind dauert das.
 
Du willst wissen, ob zwei Ordner gleich sind (nicht identisch), daher ein Autovergleich.

Du hast zwei Autos, A​ und B, wann sind das gleiche Autos?
Was muss übereinstimmen​​:
Farbe
Hersteller
Klasse
Baujahr
Motorisierung
...
Was nicht:
Seriennummer (dann wär​​en sie ja identisch, oder mindestens eins gefälscht).
Kilometerstand (nicht ​zwingend).

Jetzt das gleiche mit ​Ordnern:

Name, Inhalt (kann auch ein Ordner sein), Änderungsdatum, ...

Und du hast ein Problem mit Programmieren
​Das haben wir nicht durchgenommen!

ist die schlechteste Begründung ever.​
 
Zurück
Oben