var dir1Files = dir1.GetFiles("*", SearchOption.AllDirectories);
var dir2Files = dir2.GetFiles("*", SearchOption.AllDirectories);
var difference = dir1Files.ToHashSet();
difference.SymmetricExceptWith(dir2Files);
string[] foo1 = difference.Select(c => c.Name).ToArray();
File.WriteAllLines(@"d:\log1.txt", foo1);
Hier i zwei Dateien basierend auf Namen ist im Vergleich und in einer Textdatei zu schreiben ... Aber ich brauche Namen wie diese comparing two folders for non identical files? zusammen mit Verzeichnisnamen zu schreiben ...zwei Ordner für nicht identische Dateien mit Mengenlehre # Differenz und Komplement Vergleich
Irgendwelche Vorschläge?
EDIT: Ich habe zwei Ordner A und B..inside dass zwei Ordner viele Ordner und Dateien gibt es ... ich diese zwei Ordner für nicht identische Dateien mit symmetrischen Differenz am Vergleichs- und den Namen schreiben und Verzeichnisname in eine Textdatei ... mein Problem ist symmetrischer Unterschied funktioniert gut und schreibt beide nicht identische Dateinamen in eine Protokolldatei ... Aber ich muss Dateiname mit diesem Verzeichnisnamen schreiben ...
Dieser Code funktioniert einwandfrei.
var dir1Files = dir1.GetFiles("*", SearchOption.AllDirectories).Select(x => new { x.Name, x.Length });
var dir2Files = dir2.GetFiles("*", SearchOption.AllDirectories).Select(x => new { x.Name, x.Length });
var difference = dir1Files.ToHashSet();
difference.SymmetricExceptWith(dir2Files);
string[] foo1 = difference.Select(c => c.Name).ToArray();
File.WriteAllLines(@"d:\log1.txt", foo1);
Hier kann ich nicht geben, wie diese
string[] foo1 = difference.Select(c => c.Name+""+c.DirectoryName).ToArray();
@Ani: Nein, wenn ich gebe wie diese var dir1Files = dir1.GetFiles ("*", SearchOption.AllDirectories) .Wählen Sie (x => new {x.Name}); – bala3569
@Ani: es ist Vergleichen und geben nicht identische Dateien..anderenfalls gibt es das gesamte Suchergebnis – bala3569
@ bala3569: Ein Beispiel würde wirklich helfen. – Ani