2010-12-13 7 views
1

私は対称差と非同一のファイルのための2つのフォルダを比較し、テキストファイルに長さやディレクトリの名前を書いて...しかし、それはSymmetricDifferenceを使用して、同一でないファイルに対して2つのフォルダを比較しますか?

5506  D:\Trial\codegenpath\ramcovm247_portal_765\EDKPLAjaxCodeGen.log 
5857  D:\Trial\codegenpath\ramcovm247_portal_765\EDKService.log 
3741  D:\Trial\codegenpath\ramcovm247_portal_765\EDKTypes.log 
10644  D:\Trial\zippedpath\ramcovm247_portal_765\EDKPLAjaxCodeGen.log 
11714  D:\Trial\zippedpath\ramcovm247_portal_765\EDKService.log 
7482  D:\Trial\zippedpath\ramcovm247_portal_765\EDKTypes.log 

のように書いているが、私はこのように次々に記述する必要があるのですここで

5506  D:\Trial\codegenpath\ramcovm247_portal_765\EDKPLAjaxCodeGen.log 
10644  D:\Trial\zippedpath\ramcovm247_portal_765\EDKPLAjaxCodeGen.log 
5857  D:\Trial\codegenpath\ramcovm247_portal_765\EDKService.log 
11714  D:\Trial\zippedpath\ramcovm247_portal_765\EDKService.log 
3741  D:\Trial\codegenpath\ramcovm247_portal_765\EDKTypes.log 
7482  D:\Trial\zippedpath\ramcovm247_portal_765\EDKTypes.log 

は私のコード

var queryList1Only2 = (from file in list1 select file).Except(list2, myFileCompare1); 
var queryList1Only22 = (from file in list2 select file).Except(list1, myFileCompare1); 
var difference = queryList1Only2.ToHashSet(); 
difference.SymmetricExceptWith(queryList1Only22); 
foreach (var v in difference) 
     { 
      dest.WriteLine(v.Length + "  " + v.FullName); 

     } 

です
public class FileCompareLength : System.Collections.Generic.IEqualityComparer<System.IO.FileInfo> 
     { 
      public FileCompareLength() { } 
      public bool Equals(System.IO.FileInfo f1, System.IO.FileInfo f2) 
      { 
       return (f1.Length == f2.Length); 
      } 
      public int GetHashCode(System.IO.FileInfo fi) 
      { 
       string s = String.Format("{0}", fi.Length); 
       return s.GetHashCode(); 
      } 
     } 

何か提案がありますか?

+0

あなたは「差異」をSORTすることができますか? – Bolu

+0

@Bolu:最初のパスにすべてのファイルを書き込んだ後、2番目のパスにあるすべてのファイルを書き込んでいます...私が必要とするのは、パスにファイルを書き込んで、2番目のパスにある比較ファイル – bala3569

+0

です。あなたがそれをリストする前に(ファイル名で)あなたが望む順序に... – Bolu

答えて

関連する問題