前台运行 什么都不显示 两个文件夹在e盘下 请大神指出问题
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
GetDif((@"E:\文件夹1\"),@"E:\文件夹2\");
}
public string GetDif(string folder1, string folder2)
{
string diff = "", filename;
string[] fns1 = Directory.GetFiles(folder1), fns2 = Directory.GetFiles(folder2);
Hashtable ht = new Hashtable();
foreach (string fn in fns1)
{
filename = Path.GetFileName(fn);
ht[filename] = 0;//标记目录1和目录2所有文件名不一样
}
foreach (string fn in fns2)
{ //找出目录2不再目录1中存在的文件名
filename = Path.GetFileName(fn);
if (ht.ContainsKey(filename)) ht[filename] = 1;//一样
else
{
diff += fn + "\n";
}
}
List<string> difs = new List<string>(fns1);
difs.AddRange(fns2);
foreach (string fn in difs.Distinct<string>())
{
Console.WriteLine(fn);
}
foreach (string fn in ht.Keys) if (ht[fn].ToString() == "0") diff += folder1 + "\\" + fn + "\n";//得到目录1和目录2不一样文件名
return diff;
}
}
}
你都没有输出内容,只是执行了获取不同的函数而已
如果winform组件自己split下得到string数组,然后添加到组件里面
MessageBox.Show(GetDif((@"E:\文件夹1\"),@"E:\文件夹2\"))
List difs = new List(fns1);
difs.AddRange(fns2);
foreach (string fn in difs.Distinct())
{
Console.WriteLine(fn);
}
用 Beyond compare 试试就知道了