Wie man Ordner in .NET vergleicht – Anleitung mit GroupDocs

Wenn Sie wissen möchten, wie man Ordner in .NET vergleicht, sind Sie hier genau richtig. In diesem Tutorial führen wir Sie durch die Verwendung von GroupDocs.Comparison, um automatisch Unterschiede zwischen zwei Verzeichnissen zu erkennen, sowohl TXT‑Protokolle als auch umfangreiche HTML‑Berichte zu erstellen und den Prozess in reale C#‑Anwendungen zu integrieren.

Schnelle Antworten

  • Was ist der Hauptzweck? Ordnervergleiche zu automatisieren und detaillierte TXT‑ oder HTML‑Berichte zu erstellen.
  • Welche Ausgabeformate werden unterstützt? TXT für einfaches Parsen und HTML zur Erstellung eines visuellen Berichts.
  • Benötige ich eine Lizenz? Eine kostenlose Testversion reicht für Lernzwecke; eine kommerzielle Lizenz entfernt Wasserzeichen für die Produktion.
  • Kann ich das unter Linux ausführen? Ja – GroupDocs.Comparison unterstützt .NET Core unter Linux, macOS und Windows.
  • Welche .NET‑Versionen sind kompatibel? .NET Core 3.1+ und .NET 5/6/7/8.

Was Sie in diesem Leitfaden lernen werden

In diesem Leitfaden lernen Sie, wie Sie zwei Verzeichnisse in C# mit GroupDocs.Comparison vergleichen, sowohl TXT‑ als auch HTML‑Berichte erzeugen, große Ordnerstrukturen effizient verarbeiten und den Vergleich in CI/CD‑Pipelines oder Backup‑Verifizierungs‑Skripte integrieren. Sie erfahren außerdem, wie Sie die Leistung für massive Datenmengen optimieren und das Layout des HTML‑Berichts an Ihre Bedürfnisse anpassen.

Warum Ordnervergleich für .NET‑Entwickler wichtig ist

Ordnervergleich spart Ihnen das manuelle Durchsuchen von Hunderten von Dateien. Egal, ob Sie Deployments validieren, Backups prüfen oder Konfigurations‑Drift verfolgen, compare directories C#‑Stil lässt Sie hinzugefügte, entfernte oder geänderte Dateien in Sekunden statt Stunden erkennen.

Voraussetzungen und Umgebungseinrichtung

Bevor wir zu den spannenden Teilen kommen, stellen wir sicher, dass Sie alles haben, was Sie benötigen. Keine Sorge – die Einrichtung ist unkompliziert, und ich führe Sie Schritt für Schritt durch.

Was Sie benötigen

Erforderliche Bibliotheken und Versionen

  • GroupDocs.Comparison for .NET: Version 25.4.0 (die neueste stabile Version ab 2025) – unterstützt 50+ Eingabe‑ und Ausgabeformate einschließlich DOCX, PDF, HTML und Bildtypen.
  • .NET Framework/SDK: Kompatibel mit .NET Core 3.1+ und .NET 5/6/7/8
  • Entwicklungsumgebung: Visual Studio 2019+ (Community‑Edition funktioniert perfekt)

Vorkenntnisse

  • Grundlegendes Verständnis von C#‑Programmierung (wenn Sie eine einfache Konsolen‑App schreiben können, sind Sie startklar)
  • Vertrautheit mit Dateisystem‑Operationen in .NET (Arbeiten mit Pfaden, Verzeichnissen, Dateien)
  • Kenntnis der NuGet‑Paketverwaltung

Schnelle Umgebungskontrolle

  1. Öffnen Sie Ihre bevorzugte IDE (Visual Studio, VS Code oder JetBrains Rider)
  2. Erstellen Sie eine neue Konsolen‑Anwendung, die .NET Core 3.1 oder höher targetiert
  3. Stellen Sie sicher, dass Sie Zugriff auf den NuGet Package Manager haben

Wenn Sie diese drei Dinge erledigt haben, sind Sie bereit! Jetzt installieren und konfigurieren wir GroupDocs.Comparison.

Installation und Konfiguration von GroupDocs.Comparison

GroupDocs.Comparison in Ihrem Projekt zu integrieren ist ein Kinderspiel. Sie haben zwei Hauptinstallationsmethoden, und ich zeige Ihnen beide.

Installationsmethoden

Option 1: NuGet Package Manager Console (Empfohlen für Visual‑Studio‑Benutzer)

Install-Package GroupDocs.Comparison -Version 25.4.0

Option 2: .NET CLI (Perfekt für Kommandozeilen‑Enthusiasten)

dotnet add package GroupDocs.Comparison --version 25.4.0

Pro‑Tipp: Geben Sie immer die Version an, um Konsistenz im Team und in den Deploy‑Umgebungen zu gewährleisten.

Lizenzoptionen verstehen

GroupDocs.Comparison bietet flexible Lizenzmodelle für unterschiedliche Bedürfnisse:

  • Free Trial: Perfekt für Evaluation – bietet vollen Funktionsumfang mit einigen Einschränkungen
  • Temporary License: Ideal für Proof‑of‑Concept‑Projekte – entfernt Test‑Beschränkungen vorübergehend
  • Commercial License: Vollständige Features für Produktionsanwendungen

Für Lernzwecke reicht die kostenlose Testversion völlig aus. Sie können später jederzeit upgraden, wenn Sie bereit für den Einsatz sind.

Grundlegende Initialisierung und Einrichtung

Hier ist Ihr erstes Stück GroupDocs.Comparison‑Code. Diese einfache Einrichtung prüft, ob alles korrekt funktioniert:

using System;
using GroupDocs.Comparison;

class Program
{
    static void Main()
    {
        // Initialize the license if available
        License license = new License();
        // license.SetLicense("Path to your license file"); // Uncomment when you have a license

        Console.WriteLine("GroupDocs.Comparison for .NET is ready to use.");
        Console.WriteLine("Let's start comparing some folders!");
    }
}

Wenn dieser Code ohne Fehler läuft, herzlichen Glückwunsch! Sie können jetzt leistungsstarke Ordnervergleich‑Funktionalität bauen.

Wie man Ordner vergleicht und Ergebnisse als TXT‑Dateien speichert

Beginnen wir mit dem unkompliziertesten Ansatz: zwei Verzeichnisse vergleichen und die Ergebnisse als Textdatei speichern. Diese Methode ist ideal für automatisierte Skripte, Logging‑Systeme oder wenn Sie ein einfaches, parse‑fähiges Ausgabeformat benötigen.

Warum TXT‑Ausgabe wählen?

Textdateien sind extrem vielseitig. Sie sind leichtgewichtig, einfach programmatisch zu parsen, versionskontrollfreundlich und auf jedem System lesbar. Perfekt für:

  • Automatisierte Build‑Prozesse
  • Log‑Dateianalyse
  • Kommandozeilen‑Tools
  • Integration mit anderen Systemen

Schritt‑für‑Schritt‑Implementierung

Schritt 1: Konfigurieren Sie Ihre Vergleichsoptionen

Die Klasse FolderComparisonOptions lässt Sie den Vergleich feinjustieren.
Definition‑Anchor: FolderComparisonOptions definiert alle konfigurierbaren Einstellungen für einen Ordnervergleichsvorgang.

using System;
using System.IO;
using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

string sourceFolder = "YOUR_DOCUMENT_DIRECTORY/SOURCE_FOLDER";
string targetFolder = "YOUR_DOCUMENT_DIRECTORY/TARGET_FOLDER";
string outputDirectory = "YOUR_OUTPUT_DIRECTORY";

// Set comparison options for TXT output
Options.CompareOptions compareOptionsTxt = new Options.CompareOptions
{
    DirectoryCompare = true,
    FolderComparisonExtension = GroupDocs.Comparison.Options.FolderComparisonExtension.Txt
};

Damit teilen Sie GroupDocs.Comparison mit, dass Sie komplette Verzeichnisse (nicht einzelne Dateien) vergleichen und das Ergebnis im Textformat ausgeben möchten. Die Einstellung DirectoryCompare = true ist entscheidend – sie aktiviert den rekursiven Verzeichnisvergleich.

Schritt 2: Initialisieren Sie das Comparer‑Objekt

Definition‑Anchor: Comparer ist die Kernklasse, die den Vergleich zwischen Quell‑ und Ziel‑Elementen durchführt.

Comparer comparerTxt = new Comparer(sourceFolder, compareOptionsTxt);
// Add target folder for comparison
comparerTxt.Add(targetFolder, compareOptionsTxt);

Hier beginnt die Magie. Sie erstellen eine Comparer‑Instanz mit Ihrem Quellordner als Basis und fügen anschließend den Zielordner zum Vergleich hinzu. Denken Sie daran wie „vergleiche alles in Ordner B mit Ordner A“.

Schritt 3: Führen Sie den Vergleich aus und speichern Sie die Ergebnisse

string txtOutputFileName = Path.Combine(outputDirectory, "ComparisonResult.txt");
comparerTxt.Compare(txtOutputFileName, compareOptionsTxt);

Console.WriteLine("TXT file with comparison results saved successfully.");
Console.WriteLine($"Check your results at: {txtOutputFileName}");

Das war’s! Ihre Vergleichsergebnisse sind nun als Textdatei gespeichert. Die Ausgabe enthält Details zu hinzugefügten, gelöschten und geänderten Dateien, sodass Sie leicht nachvollziehen können, was sich zwischen den beiden Verzeichnissen geändert hat.

Das TXT‑Ausgabeformat verstehen

Die erzeugte Textdatei enthält typischerweise:

  • Added files – im Ziel vorhanden, aber nicht in der Quelle
  • Deleted files – in der Quelle vorhanden, aber nicht im Ziel
  • Modified files – existieren in beiden Verzeichnissen, haben aber unterschiedlichen Inhalt
  • File metadata – Größe, Änderungsdaten und weitere relevante Informationen

Wie man Ordner vergleicht und Ergebnisse als HTML‑Dateien speichert

Während TXT‑Dateien ideal für Automatisierung sind, glänzt die HTML‑Ausgabe, wenn Sie einen visuellen, menschenlesbaren Bericht benötigen. HTML‑Vergleichsergebnisse eignen sich perfekt für Code‑Reviews, Kundenpräsentationen oder wenn Sie Ergebnisse mit nicht‑technischen Teammitgliedern teilen wollen.

Vorteile der HTML‑Ausgabe (und wie man HTML‑Bericht generiert)

  • Visuelle Diff‑Hervorhebung – sehen Sie exakt, was sich geändert hat, farblich markiert
  • Interaktive Navigation – klicken Sie sich einfach durch Dateien und Ordner
  • Professionelle Präsentation – ideal für Berichte und Dokumentation
  • Plattformübergreifende Ansicht – öffnet in jedem Webbrowser

Schritt 1: HTML‑Vergleichsoptionen konfigurieren

Definition‑Anchor: FolderComparisonExtension.Html weist die API an, einen HTML‑basierten Bericht anstelle von Klartext zu erzeugen.

// Set comparison options for HTML output
Options.CompareOptions compareOptionsHtml = new Options.CompareOptions
{
    DirectoryCompare = true,
    FolderComparisonExtension = GroupDocs.Comparison.Options.FolderComparisonExtension.Html
};

Der entscheidende Unterschied ist hier die Einstellung FolderComparisonExtension.Html. Sie veranlasst GroupDocs.Comparison, einen umfangreichen HTML‑Bericht zu erstellen.

Schritt 2: Comparer für HTML‑Ausgabe initialisieren

Comparer comparerHtml = new Comparer(sourceFolder, compareOptionsHtml);
// Add target folder to the comparison
comparerHtml.Add(targetFolder, compareOptionsHtml);

Das gleiche Muster wie zuvor, nur jetzt für HTML‑Ausgabe konfiguriert. Der Vorteil der API von GroupDocs.Comparison liegt in ihrer Konsistenz – Sie verwenden dieselben Methoden, unabhängig vom Ausgabeformat.

Schritt 3: HTML‑Bericht generieren und speichern

string htmlOutputFileName = Path.Combine(outputDirectory, "ComparisonResult.html");
comparerHtml.Compare(htmlOutputFileName, compareOptionsHtml);

Console.WriteLine("HTML file with comparison results saved successfully.");
Console.WriteLine($"Open in browser: {htmlOutputFileName}");

Die resultierende HTML‑Datei ist ein vollständiger, eigenständiger Bericht, den Sie in jedem Browser öffnen können. Sie enthält interaktive Elemente, Syntax‑Highlighting (für Code‑Dateien) und ein sauberes, professionelles Layout.

Was Sie in Ihrem HTML‑Bericht erwarten können

Ihr HTML‑Ausgabe enthält typischerweise:

  • Summary dashboard – Überblick über Gesamtänderungen, betroffene Dateien und Vergleichs‑Statistiken
  • Side‑by‑side comparisons – visuelle Diff‑Ansicht, die exakt zeigt, was sich geändert hat
  • Folder tree navigation – einfaches Durchblättern der Verzeichnisstruktur
  • File‑level details – Einzeldateivergleiche mit hervorgehobenen Unterschieden

Häufige Anwendungsfälle und reale Anwendungen

Zu verstehen, wann und wie man Ordnervergleich einsetzt, kann Ihren Entwicklungs‑Workflow erheblich verbessern. Hier einige Szenarien, in denen diese Funktionalität unverzichtbar ist:

Code‑Review und Versionskontrolle

Szenario: Sie prüfen Änderungen zwischen zwei Branches oder vergleichen verschiedene Versionen Ihres Code‑Bases.

Warum Ordnervergleich hilft: Statt Datei für Datei zu prüfen, sehen Sie sofort alle Modifikationen, Ergänzungen und Löschungen im gesamten Projekt. Der HTML‑Bericht ist hier besonders nützlich – Sie können visuelle Diff‑Reports mit dem Team teilen.

Daten‑Backup‑Verifizierung

Szenario: Sie müssen sicherstellen, dass Ihr Backup‑Prozess alle Dateien korrekt kopiert hat und keine Beschädigungen vorliegen.

Implementierungstipp: Nutzen Sie die TXT‑Ausgabe für automatisierte Verifizierungsskripte, die Sie in Ihren Backup‑Workflow einbinden. Richten Sie Alarme ein, wenn Diskrepanzen entdeckt werden.

Konfigurationsmanagement über Umgebungen hinweg

Szenario: Sie verwalten Anwendungskonfigurationen für Development, Staging und Production.

Best Practice: Regelmäßige Ordnervergleiche helfen, Konfigurations‑Drift frühzeitig zu erkennen. HTML‑Reports eignen sich hervorragend für Change‑Management‑Dokumentation.

Dokumenten‑Versionskontrolle

Szenario: Sie betreuen ein Dokumenten‑Repository, in dem mehrere Teammitglieder Änderungen vornehmen.

Pro‑Tipp: Kombinieren Sie Ordnervergleich mit geplanten Tasks, um automatisch Änderungsberichte zu erzeugen. Besonders wertvoll für Compliance‑ und Audit‑Zwecke.

CI/CD‑Pipeline‑Integration

Szenario: Sie möchten Änderungen automatisch erkennen und melden, sobald ein Deployment erfolgt.

Erweiterte Nutzung: Integrieren Sie den Ordnervergleich in Ihre Build‑Pipeline, um für jedes Deployment Änderungsberichte zu erzeugen – hilfreich für Rollback‑Entscheidungen und Change‑Tracking.

Leistungsoptimierung und bewährte Verfahren

Bei großen Verzeichnisstrukturen wird die Performance entscheidend. Hier bewährte Strategien, um Ihre Ordnervergleiche reibungslos laufen zu lassen:

Optimierungsstrategien

  1. Intelligente Verzeichnisauswahl

    • Vergleichen Sie nur die Verzeichnisse, die Sie wirklich analysieren müssen
    • Nutzen Sie Filter, um temporäre Dateien, Logs oder andere irrelevante Inhalte auszuschließen
    • Erwägen Sie, sehr große Vergleiche in kleinere, fokussierte Teile zu splitten
  2. Speicherverwaltung

Definition‑Anchor: Comparer.Dispose() gibt alle nicht verwalteten Ressourcen des Comparers frei und verhindert Speicherlecks.

// Dispose of comparer objects properly
using (Comparer comparer = new Comparer(sourceFolder, compareOptions))
{
    comparer.Add(targetFolder, compareOptions);
    comparer.Compare(outputFileName, compareOptions);
} // Automatically disposed here
  1. Asynchrone Verarbeitung
    Für umfangreiche Vergleiche sollten Sie async‑Muster einsetzen, um UI‑Blockaden in Desktop‑Apps oder Time‑outs in Web‑Apps zu vermeiden.

Tipps zur Leistungsüberwachung

  • Speicherverbrauch während großer Vergleiche beobachten
  • Verarbeitungszeit für unterschiedliche Verzeichnisgrößen messen
  • Realistische Erwartungen an Nutzer basierend auf Verzeichnis‑Komplexität setzen
  • Fortschritts‑Reporting für langlaufende Vorgänge in Betracht ziehen

Fehlersuche bei häufigen Problemen

Selbst mit sauberem Code können Herausforderungen auftreten. Hier die gängigsten Probleme und deren Lösungen:

Datei‑Zugriffs‑ und Berechtigungsprobleme

Problem: „Access denied“ oder „file in use“‑Fehler

Lösung:

  • Stellen Sie sicher, dass Ihre Anwendung mit den erforderlichen Berechtigungen läuft
  • Prüfen Sie, ob Dateien von anderen Prozessen gesperrt sind
  • Implementieren Sie Retry‑Logik für temporäre Dateisperren

Pfad‑ und Verzeichnisprobleme

Problem: Ungültige Pfad‑Fehler oder Verzeichnis nicht gefunden

Lösung:

// Always validate paths before comparison
if (!Directory.Exists(sourceFolder))
{
    throw new DirectoryNotFoundException($"Source directory not found: {sourceFolder}");
}

if (!Directory.Exists(targetFolder))
{
    throw new DirectoryNotFoundException($"Target directory not found: {targetFolder}");
}

Speicher‑ und Leistungsprobleme

Problem: Out‑of‑Memory‑Ausnahmen oder langsame Performance

Lösungen:

  • Große Vergleiche in kleinere Batches aufteilen
  • Unnötige Dateitypen vom Vergleich ausschließen
  • Speicherverbrauchsmuster überwachen und optimieren

Probleme bei der Ausgabe‑Dateierstellung

Problem: Ausgabedateien werden nicht erzeugt oder sind beschädigt

Fehlerbehebungsschritte:

  • Schreibberechtigungen im Zielverzeichnis prüfen
  • Ausreichend Festplattenspeicher sicherstellen
  • Auf ungültige Zeichen in Dateipfaden achten
  • Vor dem Vergleich prüfen, ob das Ausgabeverzeichnis existiert

Erweiterte Konfigurationsoptionen

GroupDocs.Comparison bietet zahlreiche Optionen, um das Vergleichsverhalten exakt anzupassen:

Einstellungen zur Vergleichsempfindlichkeit

Sie können festlegen, wie sensibel der Vergleich auf verschiedene Änderungen reagiert:

  • Whitespace handling – Leerzeichen‑Änderungen ignorieren oder berücksichtigen
  • Case sensitivity – festlegen, ob Groß‑/Kleinschreibung als Unterschied gilt
  • Line ending normalization – unterschiedliche Zeilenende‑Formate handhaben

Dateityp‑Filterung

Konzentrieren Sie den Vergleich auf bestimmte Dateitypen:

compareOptions.FileAuthorMetadata = false; // Ignore metadata changes
compareOptions.GenerateFramePreview = true; // Generate preview frames

Benutzerdefinierte Ausgabeformatierung

Passen Sie das Ausgabeformat Ihren speziellen Anforderungen an:

  • Custom templates – HTML‑Ausgabe‑Styling modifizieren
  • Metadata inclusion – steuern, welche Dateiinformationen enthalten sind
  • Diff granularity – zwischen Datei‑Ebene oder Zeilen‑Ebene wählen

Fazit und nächste Schritte

Herzlichen Glückwunsch! Sie haben die Grundlagen des Ordnervergleichs mit GroupDocs.Comparison für .NET gemeistert. Sie können jetzt:

✅ GroupDocs.Comparison in Ihren Projekten einrichten und konfigurieren
✅ Verzeichnisse vergleichen und sowohl TXT‑ als auch HTML‑Berichte erzeugen (inkl. generate HTML report)
✅ Häufige Herausforderungen bewältigen und die Performance optimieren
✅ Ordnervergleich in realen Anwendungen integrieren

Was kommt als Nächstes?

Möchten Sie Ihre Ordnervergleich‑Fähigkeiten weiter vertiefen? Erwägen Sie:

  • Erweiterte Filteroptionen für gezieltere Vergleiche
  • API‑Integration für webbasierte Vergleichsdienste
  • Batch‑Verarbeitung für mehrere Verzeichnis‑Paare
  • Benutzerdefinierte Reporting‑Formate, die auf die Bedürfnisse Ihrer Organisation zugeschnitten sind

Beginnen Sie noch heute mit der Implementierung

Der beste Weg, diese Konzepte zu verinnerlichen, ist praktische Anwendung. Wählen Sie ein aktuelles Projekt aus und identifizieren Sie Stellen, an denen ein Ordnervergleich Ihren Workflow vereinfachen könnte. Starten Sie klein, experimentieren Sie mit verschiedenen Ausgabeformaten und bauen Sie nach und nach erweiterte Features ein.

Denken Sie daran: Jeder Experte war einmal Anfänger. Nehmen Sie sich Zeit, probieren Sie frei aus und zögern Sie nicht, diesen Leitfaden bei Bedarf zu Rate zu ziehen!

Häufig gestellte Fragen

Q: Kann ich GroupDocs.Comparison für .NET auf Linux‑Systemen verwenden?
A: Absolut! GroupDocs.Comparison unterstützt die plattformübergreifende Bereitstellung über .NET Core. Es funktioniert nahtlos unter Linux, macOS und Windows.

Q: Wie gehe ich mit sehr großen Verzeichnissen mit tausenden Dateien um?
A: Für große Verzeichnisse setzen Sie folgende Strategien ein: asynchrone Verarbeitung, Aufteilen des Vergleichs in kleinere Batches, unnötige Dateitypen ausschließen und Speicherverbrauch überwachen. Erwägen Sie, Fortschritts‑Feedback für langlaufende Vorgänge bereitzustellen.

Q: Gibt es ein praktisches Limit für die Anzahl der zu vergleichenden Dateien?
A: Es gibt kein festes Limit in der Bibliothek, jedoch hängt die Performance von Ihren Systemressourcen (RAM, CPU, Festplattengeschwindigkeit) und Dateigrößen ab. Die meisten Systeme bewältigen tausende Dateien problemlos, sehr große Datensätze können jedoch Optimierungs‑Strategien erfordern.

Q: Kann GroupDocs.Comparison verschlüsselte oder passwortgeschützte Dateien verarbeiten?
A: Die Bibliothek kann verschlüsselte Dateien nicht direkt vergleichen. Sie müssen die Dateien zuerst entschlüsseln, sofern Sie die entsprechenden Berechtigungen und Zugangsdaten besitzen. Achten Sie stets darauf, die Sicherheitsrichtlinien Ihrer Organisation beim Umgang mit verschlüsselten Inhalten einzuhalten.

Q: Wie integriere ich den Ordnervergleich in automatisierte CI/CD‑Pipelines?
A: Erstellen Sie Konsolen‑Anwendungen, die GroupDocs.Comparison nutzen, konfigurieren Sie sie so, dass sie geeignete Exit‑Codes basierend auf den Vergleichsergebnissen zurückgeben, und binden Sie sie in Ihre Build‑Skripte ein. Die TXT‑Ausgabe ist besonders nützlich, um Ergebnisse in automatisierten Umgebungen zu parsen.

Q: Was ist der Unterschied zwischen Test‑ und Lizenz‑Version?
A: Die Test‑Version enthält den vollen Funktionsumfang, fügt jedoch Wasserzeichen zu den Ausgaben hinzu und hat einige Nutzungsbeschränkungen. Lizenzierte Versionen entfernen diese Einschränkungen und sind für den Produktionseinsatz geeignet.

Q: Kann ich das Styling und Layout des HTML‑Outputs anpassen?
A: Ja, GroupDocs.Comparison bietet Optionen zur Anpassung des HTML‑Outputs. Sie können Vorlagen modifizieren, das Styling anpassen und steuern, welche Informationen in den Berichten enthalten sind.

Q: Wie gehe ich mit Dateien um, die nur in einem Verzeichnis existieren?
A: GroupDocs.Comparison erkennt und meldet diese Unterschiede automatisch als „added“ bzw. „deleted“ Dateien. Sie können konfigurieren, wie diese Unterschiede im Ausgabeformat dargestellt werden.

Zusätzliche Ressourcen und Support

Dokumentation

Download und Lizenzierung


Zuletzt aktualisiert: 2026-07-20
Getestet mit: GroupDocs.Comparison 25.4.0 for .NET
Autor: GroupDocs

Verwandte Tutorials