Forum
Elimde iki tane proje klasörü var birisi güncellenmiş hali olarak düşünün, bu iki klasör arasındaki aynı isimleri dosyaları bulup bulduğu dosyayı satır satır karşılaştıran kodu yazmak istiyorum.
Önce dosyaları karşılaştıran kodu hallettim.
class Program
{
static void Main(string[] args)
{
string pathA = @"C:\Users\Deneme1";
string pathB = @"C:\Users\Deneme2";
System.IO.DirectoryInfo dir1 = new System.IO.DirectoryInfo(pathA);
System.IO.DirectoryInfo dir2 = new System.IO.DirectoryInfo(pathB);
IEnumerable<System.IO.FileInfo> list1 = dir1.GetFiles("*.*", System.IO.SearchOption.AllDirectories);
IEnumerable<System.IO.FileInfo> list2 = dir2.GetFiles("*.*", System.IO.SearchOption.AllDirectories);
FileCompare myFileCompare = new FileCompare();
bool areIdentical = list1.SequenceEqual(list2, myFileCompare);
if (areIdentical == true)
{
Console.WriteLine("Aynı Dosyalar:");
}
else
{
}
var queryCommonFiles = list1.Intersect(list2, myFileCompare);
if (queryCommonFiles.Count() > 0)
{
Console.WriteLine("Aynı Dosyalar:");
foreach (var v in queryCommonFiles)
{
Console.WriteLine(v.FullName);
}
}
else
{
}
Console.WriteLine("Cikis icin tiklayiniz");
Console.ReadKey();
}
}
class FileCompare : System.Collections.Generic.IEqualityComparer<System.IO.FileInfo>
{
public FileCompare() { }
public bool Equals(System.IO.FileInfo f1, System.IO.FileInfo f2)
{
return (f1.Name == f2.Name);
}
public int GetHashCode(System.IO.FileInfo fi)
{
string s = String.Format("{0}", fi.Name);
return s.GetHashCode();
}
}
}
Sonra iki dosya arasındaki farkı bulup rapor dosyası oluşturdum
namespace ConsoleApplication47
{
class Program
{
static void Main(string[] args)
{
string[] lines1 = File.ReadAllLines(@"C:\Users\test1.txt");
string[] lines2 = File.ReadAllLines(@"C:\Users\test2.txt");
string FileName;
FileName = Path.GetFileName(@"C:\Users\test1.txt");
string FileName2;
FileName2 = Path.GetFileName(@"C:\Users\test2.txt");
StringBuilder sb = new StringBuilder();
int count = lines1.Length;
{
int j = 1;
string lin = String.Format("{0} , {1} , {2} ", "Ln", FileName, FileName2); sb.AppendLine(lin);
File.WriteAllText(@"C:\Users\StjVolkanSon\Desktop\Rapor.txt", sb.ToString());
for (int i = 0; i < count; i++)
{
if (lines1[i] == lines2[i])
{
}
else
{
string line = String.Format("{0} , {1} , {2} ", (j), lines1[i], lines2[i]); sb.AppendLine(line);
File.WriteAllText(@"C:\Users\Rapor.txt", sb.ToString());
}
j++;
}
}
}
}
}
Ama bunları bütün olarak yapamadım yardımcı olurmusunuz?
calısır bır sekılde alma sansımız varmı codları ?
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
anlayamadım çalıştırsam buraya konu açmam zaten 🙂
çalışır şekilde alma kastım debug edilir halde projeyı yada kodu paylaşmanızdan bahsetmiştim.
saygılar
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com