Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Visual Basic.net Ordner vergleichen

Mitglied: Martin.S

Martin.S (Level 1) - Jetzt verbinden

27.04.2011 um 10:14 Uhr, 5663 Aufrufe, 3 Kommentare

Hallo,

ich stehe vor einem Problem, bei dem ich nicht weiterkomme.

Aufgabe ist es, ein Programm zu schreiben, welches zwei Ordner miteinander vergleicht. Nach einem Update soll der geänderte Ordner mit einem Referenzordner verglichen werden. Alle Dateien, die geändert wurden oder neu hinzugekommen sind, sollen in einen neuen Ordner kopiert werden. Dabei darf die Ordnerstruktur nicht geändert werden. Es müssen also alle Dateien in die gleichen Unterordner kopiert werden.

Ich hoffe, ich konnte darlegen, was die Aufgabenstellung ist; kann aber bei Bedarf gerne versuchen, noch genauer zu werden.

Ich bin, nach einigem Suchen im Internet, soweit, dass der Vergleich der Dateien und das Kopieren unterschiedlicher Dateien funktioniert. Nur bei dem rekursiven Aufruf der Funktion hapert es noch: Zwar werden auch die Unterordner durchsucht und unterschiedliche Dateien kopiert, allerdings leider ohne die Unterordner, d.h. die Ordnerstruktur wird nicht mitkopiert. Langsam aber sich bin ich verzweifelt. Hier meine Funktion, ich hoffe, damit kann jemand was anfangen und ein bisschen Hilfestellung geben.

    Public Sub vergleichDir(ByVal verz1 As DirectoryInfo, ByVal verz2 As DirectoryInfo) 
        Dim sourceDir As New DirectoryInfo(verz1.FullName) 
        Dim destdir As New DirectoryInfo(verz2.FullName) 
        'Dim oSourceSubDir As DirectoryInfo 
        Dim oDestSubDir As DirectoryInfo 
        'Dim sourceFile As FileInfo 
        Dim iCounter As Integer = 0 
        Dim anzahlSubDirs As Integer = 0 
 
        For Each sourceFile As FileInfo In sourceDir.GetFiles 
            For Each destFile As FileInfo In destdir.GetFiles 
                If (sourceFile.Length = destFile.Length) Then 
                    'MsgBox("Vorhanden", "1", "Erfolg." & iCounter) 
                ElseIf (sourceFile.Length <> destFile.Length) Then 
                    sourceFile.CopyTo("ZIELPFAD" + sourceFile.Name, 1) 
                    iUnterschiede = iUnterschiede + 1 
                ElseIf (Not destdir.GetFiles.Contains(sourceFile)) Then 
                    MsgBox("Datei " & sourceFile.Name & " nicht vorhanden. Wird nun ersetzt.", "1", iCounter) 
                    sourceFile.CopyTo("ZIELPFAD" + sourceFile.Name, 1) 
                    MsgBox(iCounter + " Dateien kopiert.") 
                Else 
                    MsgBox("Keiner der obrigen Fälle!!") 
                End If 
            Next  
        Next 
 
        Try 
            For Each oSourceSubDir As DirectoryInfo In sourceDir.GetDirectories() 
                For Each oDestSubDir In destdir.GetDirectories() 
                    'MsgBox("oSourceSubDir: " + oSourceSubDir.Name) 
                    'MsgBox("oDestSubDir: " + oDestSubDir.Name) 
                    CopyFolder(oSourceSubDir.Name, "ZIELPFAD" & oSourceSubDir.Name, 1, 1) 
                    vergleichDir(oSourceSubDir, oDestSubDir) 
                    'MsgBox("Anzahl Verzeichnisse: " + anzahlSubDirs) 
                Next 
                'MsgBox("Unterordner" + anzahlSubDirs) 
            Next 
        Catch ex As Exception 
        End Try 
    End Sub
Mitglied: 99426
27.04.2011 um 15:22 Uhr
Hallo Martin!

Ich weiß zwar nicht ob ich dir damit helfen kann, weil ich in VB nicht gerade ein Profi bin, aber versuche es vielleicht mal hiermit. Ich hoffe, das hilft dir weiter und du kannst es mit deinem Programm sinnvoll kombinieren. Wenn nicht, schau dir die Seite vielleicht mal an, ob sich was brauchbares findet.

http://www.vbarchiv.net/tipps/tipp_2131-datenbestaende-ordner-syncronis ...


ActiveVB (http://www.activevb.de) ist auch nicht schlecht, wenn man mal Snippeds sucht.


LG, Harald
Bitte warten ..
Mitglied: Martin.S
27.04.2011 um 16:22 Uhr
Hallo Harald,

erstmal Danke für Deine Antwort.

Das von Dir gepostete Programm habe ich auch gefunden, leider funktioniert das nicht so, wie ich mir das vorstelle. Die beiden Ordner wollte ich nicht verändern, in dem Programm wird aber der eine Ordner geändert. Ich schau nochmal, ob ich da einen anderen Zielordner hinbekomme.

ActiveVB kenn ich nicht, leider kann ich den Link nicht öffnen...

Danke für die Antwort und immer noch ratlose Grüße

Martin
Bitte warten ..
Mitglied: 99426
27.04.2011 um 17:57 Uhr
Der Link lautet http://www.activevb.de . Das hast du aber sicher schon selbst herausgefunden. Da hat sich am Ende eine Klammer ein-geschmuggelt.
Schade dass ich nicht helfen konnte.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Ordner und Unterordner vergleichen
gelöst Frage von SPSmanBatch & Shell2 Kommentare

Hallo an alle, Ich suche nach einer Batchfunktion die mir Ordner und Unterordner Vergleicht und bei Ungleichheit das Archivbit ...

Batch & Shell
Powershell zwei Ordner vergleichen
gelöst Frage von Rabauke84Batch & Shell2 Kommentare

Hallo zusammen, ich hab folgendes Problem: Unter meinem Profilordner (oberste Ebene) gibt es ca 140 Ordner mit den Namen ...

VB for Applications

Excel, viele Spalten miteinander vergleichen - ordnen - markieren

gelöst Frage von tobiileinVB for Applications6 Kommentare

Hallo zusammen, ich habe derzeit folgendes Problem: Ich soll von einigen Servern eine Paketliste erstellen und diese dann in ...

Windows 7

Ordner vergleichen, bei gleichem Datum, Inhalt zusammenführen

Frage von ConcurveWindows 73 Kommentare

Guten Tag, ich würde bei einem "Problem" Hilfe benötigen. Leider bin ich was *.bat angeht ziemlich Ahnungslos und hoffe ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 2 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 6 StundenCPU, RAM, Mainboards4 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 20 StundenRouter & Routing3 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...