J'ai deux dossiers A et B..pendant que deux dossiers beaucoup de dossiers et de fichiers sont là ... Je compare ces deux dossiers pour les fichiers non identiques avec la différence symétrique et écris le nom et le nom du répertoire dans un fichier texte. ..Je ont utilisé ce codecomparez deux dossiers pour des fichiers non identiques avec SymmetricDifference?
public class FileInfoNameLengthEqualityComparer : EqualityComparer<FileInfo>
{
public override bool Equals(FileInfo x, FileInfo y)
{
if (x == y)
return true;
if (x == null || y == null)
return false;
// 2 files are equal if their names and lengths are identical.
return x.Name == y.Name && x.Length == y.Length && x.LastWriteTime== y.LastWriteTime;
}
public override int GetHashCode(FileInfo obj)
{
return obj == null
? 0 : obj.Name.GetHashCode()^obj.Length.GetHashCode();
}
}
// Construct custom equality-comparer.
var comparer = new FileInfoNameLengthEqualityComparer();
// Create sets of files from each directory.
var sets = new[] { dir1, dir2 }
.Select(d => d.GetFiles("*", SearchOption.AllDirectories))
.Select(files => new HashSet<FileInfo>(files, comparer))
.ToArray();
// Make the first set contain the set-difference as determined
// by the equality-comparer.
sets[0].SymmetricExceptWith(sets[1]);
// Project each file to its full name and write the file-names
// to the log-file.
var lines = sets[0].Select(fileInfo => fileInfo.FullName).ToArray();
File.WriteAllLines(@"d:\log1.txt", lines);
ce que j'ai besoin est si la longueur diffère je dois écrire la longueur avec le nom de répertoire et si le nom i est différent doivent écrire le nom ainsi que le nom du répertoire ou si LastWriteTime diffère je dois écrire lastwrittime avec le nom du répertoire ... Une suggestion ??
Dans ce format:
Missed Files detail :
---------------------
File Name Size Date Path
Discrepancies in File Size:
--------------------------
Size Path
Discrepancies in File Date:
--------------------------
date path
http://msdn.microsoft.com/en-us/library/bb546137.aspx –
http://www.experts-exchange.com/Programming/Languages/C_Sharp/Q_25141664.html –
Un excellent exemple de mise en œuvre Linq dans comparer le contenu du fichier de deux dossiers: http://msdn.microsoft.com/en-us/library/bb882649.aspx Il a besoin de quelques ajustements. – Stefan